Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

Прочитать часть файла - Программирование Android
Нужно открыть файл и, начиная от 4-го байта, все записать в массив byte. Такой код записывает все, но начиная с 4-го байта в массиве: ...

Не отображается часть виджета - Программирование Android
Всем привет, сделал небольшой погодный виджет, так ради интереса, состоит он из картинки и двух текстовых полей под ней. Вроде ничего...

Серверная часть приложения - Программирование Android
Доброго времени суток. У меня такой вопрос: где можно почитать про серверную часть приложения? Понимаю, что должен быть некий сервер,...

Серверная часть мобильных приложений - Программирование Android
здраствуйте!:handshake: я разрабатывал приложение для android ,изначально оно планировалось просто как некий контент которым могли бы...

Как вывести часть интернет страницы? - Программирование Android
Помогите пожалуйста, пишу программу которая показывает последнее сообщение в определенной ветке форума и не знаю как выделить это...

Сделать часть текста жирным шрифтом - Программирование Android
доброго времени суток. Пишу программу тестирования, и хотелось бы чтобы после вопроса ответ выделялся жирным шрифтом. Но никак не могу...

Растянуть TableLayout на всю часть родителя - Программирование Android
Всех приветствую, котятки! На повестке дня снова вопрос... Мучаюсь здесь с TableLayout, но всё никак не могу растянуть его на всю часть...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
30.01.2012, 00:48     Отбросить дробную часть числа #2

http://developer.android.com/referen...lang/Math.html - тут матчасть))
если по индусски, то так: (int)перед нужной переменной
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,055
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 сходны разберешься раз поймешь идею
Bes-s
30 / 30 / 2
Регистрация: 05.11.2011
Сообщений: 178
30.01.2012, 10:43     Отбросить дробную часть числа #4
тут стоял вопрос "отбросить дробную часть", а не округлить. так что индусский каст к (int) как раз в тему))
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) не слушай, - это ни так шутят.
По поводу производительности: в данной задаче над этим в принципе не стоит запариваться, особенно если оптимизация ( От силы процента на два ) достигается за счет читабельности.
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);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2012, 22:25     Отбросить дробную часть числа
Еще ссылки по теме:

Как сделать часть настроек неактивными - Программирование Android
Как сделать часть настроек неактивными (то есть допустим пока не поставишь галочку в CheckBoxPreference с названием &quot;Разрешить приложению...

Обработка нажатия на часть элемента списка - Программирование Android
Как в Android обработать нажатие не на весь элемент списка ListView, а на отдельный его элемент? onItemClickListener обрабатывает вроде...

Запретить редактировать часть текста EditText - Программирование Android
Допустим есть 380(**)***-**-** как запретить редактировать 380 ?

Скрыть часть web view за экран - Программирование Android
Всем доброго времени суток. Вот чем я озадачился намедни, к примеру возьмём сайт твиттера, если подгрузить его в веб вью ну или открыть в...

Можно ли разделить программу и часть отдать фрилансерам - Программирование Android
Собственно САБЖ. Проект уже почти перерос мои возможности - ограничения в свободном времени на поддержание и развитие. И возникла...


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

Или воспользуйтесь поиском по форуму:
Vladimirys
303 / 200 / 22
Регистрация: 16.01.2010
Сообщений: 567
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);
Yandex
Объявления
07.02.2012, 22:25     Отбросить дробную часть числа
Ответ Создать тему
Опции темы

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