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

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

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

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

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

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

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

Странная программа - Delphi
У меня возникла одна проблема с программой исходники которой я выложил ниже. В общем эта программа должна при нажатии на определённые...

Странная ошибка. - Turbo Pascal
Procedure Shaker_Sort(n:word;Var a:array of integer); Var j,k,l,r:word; x:integer; Begin l:=2;...

Странная ошибка - Delphi
Уважаемые, подскажите пожалуйста, что делать. Хочу открыть свой проект, но выскакивает следующая ошибка: Cannot open file...

Странная ошыбка - C++
Всём привет Есть такая проблема: при использовании qsort(&c, c.size(), sizeof(int), compare) Кидает ексепшен, почёму понять не могу....

Странная ошибка - C++ Builder
мне нужно чтобы сначала программа открыла файл(который 100% существует),потом закрыла,после чего начала поиск нужного мне процесса вот код:...

Странная наклейка - Windows XP
Пришел к своему клиенту.Вообщем понадобилось переставлять винду.Комп у него мощный,игровой.Я хотел поставить семерку,а клиент говорит :У мя...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.kto
Сообщений: n/a
19.02.2012, 22:22     Странная арифметика Java #2
Цитата Сообщение от Hank Посмотреть сообщение
Используемые типы данных float.
используй double!
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
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
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
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
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
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
Еще ссылки по теме:

Странная папка на C - Windows XP
Появилась папка C:\aYDsa1MPe00B18J\ в ней файл klplst.dat. Удаляется легко, но появляется снова при запуске любого приложения или открытии...

Странная проблема - Windows 7
С некоторых пор (возможно, после отключения мной одной из важных служб) перестали компилироваться проекты в любой среде программирования. ...

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

Странная задача - Теория вероятностей
Диаметр круга расположен на прямой, которая равномерно распределена в промежутке (0,1) Найти мат. ожидаение и дисперсию площади...

Странная ошибка - C++ WinAPI
Здравствуйте, форумчане. Пишу небольшую игру, для проверки памяти (человеческой). Создал для этого класс Game, в нем...


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

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

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