Создается переменная BigDecimal bet = new BigDecimal(0.00000010) и передается на сервер и он возвращает значение отличное от ожидаемого. Не понятно почему так.
Ответ
При использовании конструктора, принимающего на вход double, возникает неприятная особенность, отмеченная в документации.
Поскольку вещественное число при переводе в двоичную форму
представляется, как правило, бесконечной двоичной дробью, то при
создании объекта, например, BigDecimal(0.1), мантисса, хранящаяся в
объекте, окажется очень большой. (ссылка на статью)
Поэтому число будет сохранено неточно. В связи с этим лучше используйте конструктор, принимающий на вход строку:
Bigdecimal bet = new Bigdecimal("0.00000010");
Комментариев нет:
Отправить комментарий