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

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

Войти
Регистрация
Восстановить пароль
 
Hank
59 / 50 / 4
Регистрация: 28.12.2011
Сообщений: 286
#1

Странная арифметика Java - Программирование Android

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

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

Ошибка java.lang.ClassCastException: com.organizer.ToDoItemDescr cannot be cast to java.util.Map - Программирование Android
Ошибка появляется когда пытаюсь вытянуть из кастомного адаптера запись ListView. Весь лог ошибки такой: FATAL EXCEPTION: main Process:...

Не создаются BuildConfig.java R.java - Программирование Android
BuildConfig.java , R.java Не создаются в папке /gen при создании проекта в eclipse. Переустанавливал программу, ничего не помогает. Что...

Странная(или не странная, незнаю) реакция на буквы, знаки операций - C++
Всем добрый день. Делаю маленькую наработку, пока есть только начало. Ниже код: #include <iostream> #include <cstdlib> using...

Странная кодировка, ну ооочень странная - PHP БД
Всем доброго времени суток! Помогите пожалуйста решить проблему! Вот исходный код проекта: index.php <?php ...

Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? - Java
Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? Ответье, плиз, новичку, по MSDN я не понятно, это исключительно...

Странная ситуация - HTML, CSS
Есть 2 хостинга, ну и домена в общем. На одном загружаю файлы сайта - все работает отлично. Загружаю на второй - не видит стили, судя по...

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



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

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

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

а ты как сделал?
0
Hank
59 / 50 / 4
Регистрация: 28.12.2011
Сообщений: 286
24.02.2012, 22:55  [ТС] #10
Аналогично
0
24.02.2012, 22:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2012, 22:55
Привет! Вот еще темы с ответами:

Странная комплектация 7 и XP - Windows
Мне прислали с москвы машину, в комплектации которой преудстановленной значится семёрка, но диск - диск восстановления ...

Странная папка - Windows 7
Что находится в папке C:\Windows\inf\WmiApRpl? Там у меня две папки 0009 и 0019, а ещё файл WmiApRpl.h. В обеих папках файл WmiApRpl.ini....

Странная функция - Assembler
Чем отличаются следующие вызовы функций: call @LStrLen call IntToStr Что означает знак в имени функции? Добавлено через...

странная ссылка - Удаление вирусов
весь день удаляю у себя из постов какую-то ссылку.сначало я подумал что это на сайте спонсор какой-то появился, но потом заметил что на...


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

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

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