Как конвертировать BigDecimalв Doubleв Java? У меня есть требование, в котором мы должны использовать аргумент Double в качестве аргумента, но мы получаем, BigDecimalпоэтому мне нужно преобразовать BigDecimalв Double.
Всегда читайте документацию, прежде чем задать вопрос. Вы часто обнаружите, что на ваш вопрос ответили. Смотрите doubleValue(). (Подсказка: чтобы найти документацию по конкретному классу, просто выполните поиск в Google по имени класса, за которым следует java. Например, чтобы найти эту документацию, я искал «BigDecimal Java»)
Джастин
1
«У меня есть требование, в котором мы должны использовать в качестве аргумента Double» Получить изменение требования. Нет никакого смысла использовать его, BigDecimalесли вы не используете его непрерывно. Это требование снижает точность; может поставить под угрозу соблюдение нормативных требований; и может представлять собой небрежность, подлежащую судебному преследованию.
Маркиз Лорн,
Почему ты используешь, Doubleа нет double. Это поле, которое может быть null?
Питер Лоури
Использование @EJP doubleне так уж и плохо, но поскольку у него более 15 цифр точности представления, что больше, чем нужно большинству программ, но я согласен, что иногда нет смысла использовать BigDecimal, поскольку вы с большей вероятностью добавите ошибки / сложности.
Питер Лоури
Ответы:
227
Вам нужно использовать этот doubleValue()метод для получения двойного значения из объекта BigDecimal.
BigDecimal bd;// the value you getdouble d = bd.doubleValue();// The double you want
Привет, я использовал то же самое, но проблема в том, что оба anser разные, мой десятичный вывод был 13555261857.79, а при преобразовании в удвоение его 1.355526185779E10 .. Как мне получить такой же результат после преобразования десятичного числа в double
user13926345
@ user13926345 - Оба значения совпадают. Просто первый вывод - это нормальное представление значения, а другой - научное представление .
СудоРахул,
35
Вы можете перейти BigDecimalна doubleиспользование .doubleValue(). Но поверьте, не используйте его, если у вас есть валютные манипуляции. Его всегда следует выполнять BigDecimalнепосредственно на объектах. Потеря точности в этих расчетах - большая временная проблема в расчетах, связанных с валютой.
new BigDecimal(2).doubleValue()
doubleValue()
. (Подсказка: чтобы найти документацию по конкретному классу, просто выполните поиск в Google по имени класса, за которым следует java. Например, чтобы найти эту документацию, я искал «BigDecimal Java»)BigDecimal
если вы не используете его непрерывно. Это требование снижает точность; может поставить под угрозу соблюдение нормативных требований; и может представлять собой небрежность, подлежащую судебному преследованию.Double
а нетdouble
. Это поле, которое может бытьnull
?double
не так уж и плохо, но поскольку у него более 15 цифр точности представления, что больше, чем нужно большинству программ, но я согласен, что иногда нет смысла использовать BigDecimal, поскольку вы с большей вероятностью добавите ошибки / сложности.Ответы:
Вам нужно использовать этот
doubleValue()
метод для получения двойного значения из объекта BigDecimal.источник
Вы можете перейти
BigDecimal
наdouble
использование.doubleValue()
. Но поверьте, не используйте его, если у вас есть валютные манипуляции. Его всегда следует выполнятьBigDecimal
непосредственно на объектах. Потеря точности в этих расчетах - большая временная проблема в расчетах, связанных с валютой.источник
Используйте метод doubleValue, присутствующий в классе BigDecimal :
Преобразует это
BigDecimal
вdouble
.источник