2013-07-15 2 views
-3

Может ли кто-нибудь объяснить мне, как использовать Big Decimal в Java? Я создал новый большой десятичный знак, который имеет 2 числа. Я пытался и искал так много, но я не мог найти ничего, что могло бы помочь мне это единственное, что я нашел:Вычисление чисел, которые являются большими десятичными

BigDecimal big = new BigDecimal("987634534563454354321,3412434534534535343214"); 

Как я могу сделать строки Big десятичные, а затем вычислить эти две строки мин для номера и макс используя математический импорт?

+0

Вы смотрите на 'BigDecimal' API? –

+0

Должна ли эта запятая быть периодом? Или есть какая-то локальная настройка, которая установит его? – Mysticial

+0

http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial - хороший учебник –

ответ

2

Недопустимый код из-за номеров, разделенных запятой, в конструкторе BigDecimal. Требуются 2 отдельных экземпляра BigDecimal.

Точность может быть потеряна путем преобразования BigDecimal значения в int, float и double типов, используемых Math.max и Math.min. Вместо этого следует использовать метод max. Еще одна причина использовать BigDecimal, что числа могут переполняться. Это справедливо в этом случае в том, что 987634534563454354321 и 3412434534534535343214 больше, чем 2 -1 (Integer.MAX_VALUE).

Попробуйте

BigDecimal big1 = new BigDecimal("987634534563454354321"); 
BigDecimal big2 = new BigDecimal("3412434534534535343214"); 
BigDecimal min = big1.min(big2); 
BigDecimal max = big1.max(big2); 

Ознакомьтесь с javadoc for BigDecimal

+0

что делать, если я хочу рассчитать его с помощью математического импорта? : s это не только minandmax, я должен вычислять sin, tan и cos тоже: s – user2579828

+0

Вы потеряете точность, если используете Math.max. Вместо этого используйте «BigDecimal # max» – Reimeus

+0

и его класс. они сказали мне, что я должен рассчитать 2 числа, используя большое десятичное число, используя некоторые функции из математического импорта. я не знаю, как вычислить строки: s – user2579828

0

Посмотрите на Javadoc из BigDecimal. BigDecimal - как String - неизменный класс. Так один делает

BigDecimal c = a.add(b); 

(a остается неизменным.)

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