Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2016, 22:48   #1
NellyWall
Новичок
Джуниор
 
Регистрация: 12.02.2016
Сообщений: 1
По умолчанию странный счет

java, среда eclipse
вопрос в коментах в проге
Код:
   class WTF
    {
    	public static void main (String[] args)
    	{
    		System.out.println(2.0 - 1.1); // выводит 0.8999999999999999, ПОЧЕМУ??
    	}
    }

Последний раз редактировалось Аватар; 12.02.2016 в 23:04.
NellyWall вне форума Ответить с цитированием
Старый 12.02.2016, 23:26   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Потому что так работают вещественные числа в компьютере.
Округляйте до нужного числа знаков и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.02.2016, 21:10   #3
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от NellyWall Посмотреть сообщение
java, среда eclipse
вопрос в коментах в проге
Код:
   class WTF
    {
    	public static void main (String[] args)
    	{
    		System.out.println(2.0 - 1.1); // выводит 0.8999999999999999, ПОЧЕМУ??
    	}
    }
потому-что 2.0-1.1 будет 0.9 а он посчитал 0.89
komra2 вне форума Ответить с цитированием
Старый 14.02.2016, 21:22   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что? 0.8999999999999999 это не 0.89
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2016, 13:43   #5
vvmcpp
Форумчанин
 
Аватар для vvmcpp
 
Регистрация: 11.12.2010
Сообщений: 116
По умолчанию

Импортируем нужное:

Код:
import java.math.BigDecimal;
import java.math.RoundingMode;
Вызываем:
Код:
double n1 = 2.0;
double n2 = 1.1;
 
  System.out.println(new BigDecimal(n1).setScale(2, RoundingMode.HALF_UP).floatValue()); // показать  n1 
  System.out.println(new BigDecimal(n2).setScale(2, RoundingMode.HALF_UP).floatValue()); // показать n2
   System.out.println( new BigDecimal(n1 - n2).setScale(2, RoundingMode.HALF_UP).floatValue() ); // показать n1-n2
vvmcpp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странный SWITCH NEoMASTERR Общие вопросы C/C++ 3 21.12.2015 15:33
Странный баг... munthrekosh Паскаль, Turbo Pascal, PascalABC.NET 4 12.11.2011 10:24
Странный результат. Демик Помощь студентам 1 21.10.2011 21:06
[B]Странный макрос[/B] mephist Microsoft Office Word 10 12.06.2009 11:46