Вопрос Как в java умножать нецелые числа?

raf

Capitan
Регистрация
28 Мар 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Пишу код, умножаю 0.1 на 0.2, получается 0.020000000000000004
Вот отрывок кода:

double c = 0.1;
double x = 0.2;
double z = (c*x);
System.out.println(z);

Почему так?
 
В микропроцессоре дробные числа представлены как 1/2 + 1/4 + 1/8 и так далее, то бишь приближенно и для некоторых чисел выходит погрешность в самом конце. Так что округляй всегда и будет тебе счастье
 
Так и должно быть. Десятичные дробные числа иногда не имеют точного двоичного представления. Надо округлять при выводе указанием формата. Еще можно использовать BigDecimal вместо double, но это громоздко и медленней работает.
 
0,1 0,2 Попробуй проставить запятые вместо точки У меня похожий глюк был, когда-то давно
 
Назад
Сверху