С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.63
gaudin
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 7
#1

Отбросить дробную часть числа - Программирование Android

30.01.2012, 00:07. Просмотров 7048. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2012, 00:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отбросить дробную часть числа (Программирование Android):

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

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

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

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

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

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

6
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
30.01.2012, 00:48 #2

http://developer.android.com/reference/java/lang/Math.html - тут матчасть))
если по индусски, то так: (int)перед нужной переменной
1
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,067
30.01.2012, 03:19 #3
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 сходны разберешься раз поймешь идею
1
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
30.01.2012, 10:43 #4
тут стоял вопрос "отбросить дробную часть", а не округлить. так что индусский каст к (int) как раз в тему))
0
KarmaMaker
91 / 90 / 2
Регистрация: 09.12.2011
Сообщений: 233
30.01.2012, 17:25 #5
Вот пример:

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
gaudin
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 7
03.02.2012, 17:20  [ТС] #6
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
Vladimirys
309 / 206 / 25
Регистрация: 16.01.2010
Сообщений: 586
07.02.2012, 22:25 #7
Так а зачем, было переменные объявлять, не 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
07.02.2012, 22:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2012, 22:25
Привет! Вот еще темы с ответами:

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

Вывести дробную часть числа в виде натурального числа - Pascal
Помогите написать программу которая в дробном числе дробную его часть выводит в виде натурального числа.Например: из 0.123 выводит 123, из...

Вывести дробную часть числа - C++
Подскажите пожалуйста как в С++ вывести остаток после запятой... Т.Е. 5/2=2.5 мне нужно что-бы вывело 5 Гуглил, не нашел...

Вывести дробную часть числа - C (СИ)
Нужно вывести число без цифр до точки float e = 13.452323; printf(&quot;%f.2e&quot;, e); выводит 13.45, как сделать что бы просто 45...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.