2015-10-19 5 views
2

Умножение двух чисел с плавающей точкой дает значение, как показано ниже 130.82 (float) X 62.0 (float) = 8110.8403 (float) вместо 8110.84., тип данных которого должен использоваться для точного расчета в android

Кроме того, 500001,0 (поплавок) X 47,0 (с плавающей точкой) = 2.3500048E7 (двойной) вместо 23500047

ответ

1

Если речь идет о денежном исчислении, то вы можете попробовать использовать BigDecimal, Int или долго.

Поплавки и двойные оба не могут использоваться для точных расчетов. Оба типа данных соответствуют стандартам (IEEE 754).

+1

Проголосовали за добавление ссылки на IEEE 754 – Annihlator

0

не должно быть так трудно понять, что все расчетные значения имеют длину 8 уникальных номеров, с последующим экспоненциальным значением;)

, чтобы убедиться, что ваши ценности будут отличаться от длины по умолчанию, вам 'd должны иметь пол или максимальные значения самостоятельно или, например, использовать раунд (значение $, $ precision (длина за десятичной точкой)) в примере php

Иначе, конечно, значение сохранит длину по умолчанию.

Смежные вопросы