Поскольку Java использует стандарт IEEE для арифметики с плавающей запятой (IEEE 754) , который определяет -0.0
и когда он должен использоваться.
Наименьшее число представимый не имеет 1 бит в субнормальном значении и называется положительным или отрицательным нулем , определяемым знаком. Он фактически представляет округление до нуля чисел в диапазоне между нулем и наименьшим представимым ненулевым числом одного и того же знака, поэтому он имеет знак и почему его встречный + Inf или -Inf также имеет знак.
blockquote>Вы можете обойти свою конкретную проблему, добавив
0.0
, например
Double.toString(value + 0.0);
См.: Номер плавающей запятой Java
Операции, включающие отрицательный нуль ... (-0.0) + 0.0 -> 0.0
blockquote>-
"- 0.0" создается, когда операция с плавающей запятой приводит к отрицательному числу с плавающей запятой, настолько близкому к 0, которое невозможно представить нормально.
blockquote>