|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.11.2010, 17:55 | #1 |
Регистрация: 21.03.2010
Сообщений: 8
|
Странное поведение чисел....
Всем привет! Делаю калькулятор(такой же как в Win XP), так вот когда хочу например штобы решило выражение (2.4 - 0.6) он выводит мне 1,799999998, как можно исправить эту проблему. В поисках решения объявлял переменные как double, так и BigDecimal, не хочет работать(такая же фигня выходит), с округлением правда работает, но округление здесь не совсем то што хотелось бы, просто когда я ввожу потом например (2,45- 0.6) он должен выводить 1.85, а он выводит 1.9 ну или 1.8, смотря в какую сторону окрутлять, вот поэтому округление не вариант. Может кто сталкивался с такой проблемой, подскажите
|
29.11.2010, 21:16 | #2 |
Форумчанин
Регистрация: 18.06.2010
Сообщений: 273
|
Форматный вывод
System.out.printf("%4.2f ", p); |
20.01.2011, 17:12 | #3 |
Пользователь
Регистрация: 10.09.2009
Сообщений: 19
|
Собственно дело не совсем в формате. Дело в том, что число 1.0 - это double, а из-за особенностей представления в памяти чисел, получается не совсем тот результат, который ожидали. Можно схитрить и преобразовать результат в float, но при этом нужно следить за переполнением.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странное поведение realloc | eraserhp | Помощь студентам | 0 | 15.05.2010 18:06 |
Странное поведение gets | alex_alpha | Общие вопросы C/C++ | 3 | 27.03.2010 18:21 |
Странное поведение null | Vitalyk | JavaScript, Ajax | 6 | 13.02.2010 15:22 |
Странное поведение процедуры | Sergey1974 | Общие вопросы Delphi | 2 | 11.12.2009 21:41 |
Странное поведение DLL | Yurk@ | Компоненты Delphi | 4 | 01.02.2009 01:23 |