вещественные числа в java



Автор Ёвят задал вопрос в разделе Java

Как нужно сравнивать вещественные числа на равенство в Java? и получил лучший ответ

Ответ от
Почему не удастся? Очень даже удастся. Если числа одинаковые то equals для Double/Float и "==" для double/float вполне себе сгодятся, другой вопрос что специфика записи этих типов в java (на самом деле не только в java, но сейчас именно о ней) такова, что:
double a=0.3-0.2-0.1d;
double b = 0.0d;
a==b будет false ибо в "а" будет записан не 0, а чуть-чуть меньше.
Два доступных варианта, и оба они весьма хуёвы:
1:
double d = 12.1354678578862;
d = d * 1000;
int i = (int) Math.round(d);
d = (double)i / 1000;
2:
double d = 12.1354678578862;
double newDouble = new BigDecimal(d).setScale(3, RoundingMode.UP).doubleValue();
Одно из лучших и доступных обсуждений чё там за ерня твориться - здесь:
javatalks.ru/topics/2144

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как нужно сравнивать вещественные числа на равенство в Java?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*