Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/155: Рейтинг темы: голосов - 155, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 7

Отбросить дробную часть числа

30.01.2012, 00:07. Показов 30821. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу по подсчету калорий.
Программа отлично работает есть только одно но, выдает результат 3232,036. Как можно отбросить дробную часть полностью, пишу на eclipce.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        float num3 = 0;
        double num4 = 0;
        float result = 0;
 
        num3 = Float.parseFloat(etNum3.getText().toString());
        num4 = Float.parseFloat(etNum4.getText().toString());
         
        switch (v.getId()) {
        case R.id.button1:
          result = (float) ((num1 * 1.8 + num2 * 9.6 + num3 * 4.7 + 655) * num4); 
          break;
        default:
          break;
        }
 
        tvResult.setText(" " + result);
      }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2012, 00:07
Ответы с готовыми решениями:

Отбросить дробную часть числа, если дробная часть равна нулю
Всем доброго времени суток, каким образом можно устроить проверку равна ли дробная часть числа нулю. Заранее благодарен.

Отбросить дробную часть от числа типа double
В общем задача такова: ввожу десятизначное положительное число типа double с клавиатуры. нужно сделать проверку, чтоб это число было...

Отбросить дробную часть числа после 3-го знака
Здравствуйте. Вопрос простой, погуглил, но не нахожу нужную информацию. Нужна функция, которая отбрасывает дробную часть числа от...

6
 Аватар для Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
30.01.2012, 00:48

http://developer.android.com/r... /Math.html - тут матчасть))
если по индусски, то так: (int)перед нужной переменной
1
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
30.01.2012, 03:19
Bes-s, ничего смешного в этом нет...
1)зачастую библиотечные функции округления работают медленно
2) обычный каст к int грубейшая ошибка т. к. ((int)1.1)=1 и ((int)1.6)=1, хотя по правилам математики при округлении 1.6 получается 2, а уж про буxгалтерское округление вообще молчу там мрак покрытый тайной

gaudin, конечно для тебя подошла бы библиотечная функция, но на тебе на вскидку простое преобразование
C#
1
2
float z = 1.6F;
int i = z < 0 ? (int)(z - 0.5) : (int)(z + 0.5);
в принципе C# и JAVA сходны разберешься раз поймешь идею
2
 Аватар для Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
30.01.2012, 10:43
тут стоял вопрос "отбросить дробную часть", а не округлить. так что индусский каст к (int) как раз в тему))
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
30.01.2012, 17:25
Вот пример:

Java
1
2
3
4
5
6
7
8
9
10
11
12
package example;
 
import java.lang.Math;
 
public class Main {
    public static void main(String[] args) {
        // Если просто отбросить
        System.out.println( "Math.floor(): " + "1.2 => " + Math.floor(1.2) + ", 1.7 => " + Math.floor(1.7) );
        // Если таки надо округлить тогда вот
        System.out.println( "Math.round(): " + "1.2 => " + Math.round(1.2) + ", 1.7 => " + Math.round(1.7) );
    }
}
По поводу (int) не слушай, - это ни так шутят.
По поводу производительности: в данной задаче над этим в принципе не стоит запариваться, особенно если оптимизация ( От силы процента на два ) достигается за счет читабельности.
0
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 7
03.02.2012, 17:20  [ТС]
Bes-s спасибо, исправил на int - работает так как задумано.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 int num2 = 0;
        int num3 = 0;
        double num4 = 0;
        int result = 0;
                       
        num1 = (int) Float.parseFloat(etNum1.getText().toString());
        num2 = (int) Float.parseFloat(etNum2.getText().toString());
        num3 = (int) Float.parseFloat(etNum3.getText().toString());
        num4 = Float.parseFloat(etNum4.getText().toString());
 
            
        switch (v.getId()) {
        case R.id.button1:
          result = (int) ((num1 * 1.8 + num2 * 9.6 + num3 * 4.7 + 655) * num4); 
          break;
        default:
          break;
        }
 
        tvResult.setText(" " + result);
0
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
07.02.2012, 22:25
Так а зачем, было переменные объявлять, не int, и использовать Float .. Не понятно..
Вы такими действиями, вообще лишили смысла, пользоваться Float. Ибо точка, будет везде "отброшена"..
На мой взгляд лучше добавить переменную, что то вроде resultint.. Вот так:
(int) до этого везде убрать.
........
Java
1
result =  ((num1 * 1.8 + num2 * 9.6 + num3 * 4.7 + 655) * num4);
Тут, мы посчитали все с дробными, и получили результат, и только его округлим (приведем к целому), будет ближе к реальности.

Java
1
resultint = (int) result;
.....
Java
1
 tvResult.setText(" " + resultint);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2012, 22:25
Помогаю со студенческими работами здесь

Отбросить дробную часть
Как отбросить дробную часть от числа типа extended (не округлить, а отбросить).

отбросить дробную часть до двух знаков
Помогите отбросить дробную часть до 2-х знаков. Например: а = 0.9876; b = 0.98 (а, сокращенное до 2-х знаков после запятой).

Как отбросить целую часть числа?
Нужно что бы программа выбрасывала целую часть. Например :17.9 = 0.9 179 = 0 0.001=0.001 ...

Вычислите дробную часть среднего арифметического и дробную часть среднего геометрического трех чисел
Здравствуйте! Задание уровня детского сада: Вычислите дробную часть среднего арифметического и дробную часть среднего геометрического...

Найти дробную часть вещественного числа х, если целые числа вводимые с экрана положительные; х=y/z
Hужно использовать оператор &quot;если&quot;. Застрял на ней. Помогите чем сможете.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru