Пример в этой статье описывает простое использование класса BigDecimal в Java. Это очень практичный навык программирования на Java. Он доступен всем для справки. Конкретный анализ использования выглядит следующим образом:
Вообще говоря, когда дело доходит до бизнес-вычислений в Java, мы все знаем, что float и double использовать нельзя, поскольку они не могут выполнять точные вычисления. Однако разработчики Java предоставляют программистам очень полезный класс BigDecimal, который может исправить недостатки классов float и double, которые не могут выполнять точные вычисления. Класс BigDecimal находится в пакете классов java.maths. Сначала давайте посмотрим, как создать объект BigDecimal. Он имеет множество конструкторов. Вот два наиболее часто используемых для демонстрации: один — BigDecimal(double val), а другой — BigDecimal(String str). Кажется, между ними нет большой разницы, но, как сказано в описании API:
/*Результаты этого конструктора могут быть несколько непредсказуемыми. Можно было бы предположить, что new BigDecimal(.1) в точности равен .1, но на самом деле он равен .1000000000000000055511151231257827021181583404541015625. Это так, потому что .1 не может быть представлен точно как . двойной (или для этого Материя, как двоичная дробь любой конечной длины). Таким образом, длинное значение, передаваемое в конструктор, не совсем равно 0,1, несмотря на внешний вид. Конструктор (String), с другой стороны, совершенно предсказуем. : new BigDecimal(".1") точно равен .1, как и следовало ожидать. Поэтому обычно рекомендуется использовать конструктор (String) вместо этого.*/То есть конструктор, использующий double в качестве параметра, не может точно создать объект BigDecimal. Вам необходимо указать контекстную среду, то есть указать точный бит. Конструктор, использующий объект String в качестве параметра, может точно создать объект BigDecimal. Пожалуйста, посмотрите на код ниже:
import java.math.*;public class TestBigDecimal { public static void main(String args[]){ BigDecimal bd = new BigDecimal("10.123"); bd1 = new BigDecimal(10.123); "/n"+ bd1); }}Вывод после запуска:
10.123
10.12299999999999993320898283855058252811431884765625
Поэтому когда мы выбираем конструктор, это зависит от конкретных потребностей.
Кроме того, многие люди задаются вопросом, как преобразовывать объекты базовых типов, таких как int, float, double, long и BigDecimal, друг в друга. Очень просто:
Базовые типы преобразуются в соответствующие объекты BigDecimal с помощью конструкторов, а класс BigDecimal предоставляет такие методы, как intValue(), floatValue(), doubleValue() и longValue(), для преобразования объектов BigDecimal в соответствующие значения.
Что касается расчета BigDecimal, я взял сообщение с вопросом на форуме в качестве примера, чтобы кратко описать метод расчета BigDecimal. Тема такая: Ли Бай без происшествий шел по улице с горшком, чтобы купить вино. Когда вы встречаете магазин, вы удваиваете количество, когда видите цветы, вы пьете доу. Когда вы встречаете цветы и магазин, вы выпиваете все вино в горшке. Сколько доу вина в горшке Ли Бая. ?
Этот вопрос следует продвинуть вперед, а расчет следует провести в обратном порядке, и, наконец, можно получить объем исходного вина.
import java.math.*;public class Libai {public static void main(String args[]){ BigDecimal volumn = new BigDecimal("0" for (int i=0; i<5; i++) {volumn = volumn); .add(new BigDecimal("1")); volumn = volumn.divide(new BigDecimal("2")); System.out.print(объем }});Результаты запуска:
0,96875
Я надеюсь, что описание этой статьи будет полезно каждому при изучении программирования на Java.