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

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

Войти
Регистрация
Восстановить пароль
 
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
#1

Странная арифметика Java - Android

19.02.2012, 22:05. Просмотров 924. Ответов 9
Метки нет (Все метки)

Здравствуйте.
Кто подскажет в чем дело, выполняю обычный пример (-3.4)+3, а ответ получаю совершенно необычный -0.4000001. С чем это может быть связано? Используемые типы данных float.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 22:05     Странная арифметика Java
Посмотрите здесь:

Android массивы в Java
Обучение Java Android
Android C++ vs Java
Android c++/c#/Java
Android this в Java
Android Совместимости Java
Android Java spinner
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.kto
Сообщений: n/a
19.02.2012, 22:22     Странная арифметика Java #2
Цитата Сообщение от Hank Посмотреть сообщение
Используемые типы данных float.
используй double!
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
20.02.2012, 08:02  [ТС]     Странная арифметика Java #3
Пробовал и double, количество разрядов после запятой только увеличивается.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
22.02.2012, 11:28     Странная арифметика Java #4
Цитата Сообщение от Hank Посмотреть сообщение
обычный пример (-3.4)+3
(-3.4f)+3.0f - не?
dollar8
13 / 13 / 3
Регистрация: 25.09.2011
Сообщений: 84
22.02.2012, 12:28     Странная арифметика Java #5
Цитата Сообщение от Hank Посмотреть сообщение
Здравствуйте.
Кто подскажет в чем дело, выполняю обычный пример (-3.4)+3, а ответ получаю совершенно необычный -0.4000001. С чем это может быть связано? Используемые типы данных float.
дабы не переписывать/ советую почитать короткую но очень доступную статью

http://*********/technics/objCompPr.html#real_comp

раздел сравнение вещественных чисел.
там все очень понятно.
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
22.02.2012, 23:30  [ТС]     Странная арифметика Java #6
Спасибо. Статья действительно полезная, но хотелось бы результат видеть не округленным, а таким какой он был бы в других языках (например Си).
dollar8
13 / 13 / 3
Регистрация: 25.09.2011
Сообщений: 84
23.02.2012, 00:47     Странная арифметика Java #7
Цитата Сообщение от Hank Посмотреть сообщение
Спасибо. Статья действительно полезная, но хотелось бы результат видеть не округленным, а таким какой он был бы в других языках (например Си).
в общем я поднимал уже этот вопрос в разделе Джавы.

почему 3.3 *3 равно 9.899999999999999 ?

ситуация аналогичная и решение будет аналогичным.
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
23.02.2012, 20:13  [ТС]     Странная арифметика Java #8
Благодарю. Работает.
Если интересно могу рассказать как я боролся с числами типа "1.0" чтобы они выводились вот так "1".
dollar8
13 / 13 / 3
Регистрация: 25.09.2011
Сообщений: 84
24.02.2012, 22:20     Странная арифметика Java #9
Цитата Сообщение от Hank Посмотреть сообщение
Благодарю. Работает.
Если интересно могу рассказать как я боролся с числами типа "1.0" чтобы они выводились вот так "1".
ну я брал это дабл и сравнивал с интом. если равно выводил инт
Java
1
2
if (d == (int)d) print((int)d);
else print (d);
в общем как-то так.

а ты как сделал?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2012, 22:55     Странная арифметика Java
Еще ссылки по теме:

Не генерируется R.java Android
Rx Java Android
Курс по Java Android
Rx Java Android
Android Связка С++ и Java

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

Или воспользуйтесь поиском по форуму:
Hank
48 / 39 / 3
Регистрация: 28.12.2011
Сообщений: 225
24.02.2012, 22:55  [ТС]     Странная арифметика Java #10
Аналогично
Yandex
Объявления
24.02.2012, 22:55     Странная арифметика Java
Ответ Создать тему
Опции темы

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