Метод valueOf
Метод valueOf класса BigDecimal создает и возвращает
новый объект BigDecimal на основе переданного значения.
Метод имеет несколько перегрузок: в первый вариант мы передаем
значение типа long, во второй - значение типа double,
в третий - значение типа long вместе со значением типа int,
которое задает масштаб (scale) будущего числа.
Перегрузка для double использует строковое представление
числа, возвращаемое методом Double.toString, поэтому
результат совпадает с вызовом конструктора BigDecimal(String).
Это позволяет избежать неожиданных ошибок округления, которые
могут возникнуть при прямом использовании конструктора
BigDecimal(double).
Синтаксис
BigDecimal.valueOf(long val)
BigDecimal.valueOf(double val)
BigDecimal.valueOf(long unscaledVal, int scale)
Пример
Давайте создадим объект BigDecimal из целого числа:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal res = BigDecimal.valueOf(12345);
System.out.println(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте создадим объект BigDecimal из дробного числа:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal res = BigDecimal.valueOf(12.345);
System.out.println(res);
}
}
Результат выполнения кода:
12.345
Пример
Давайте создадим объект BigDecimal с заданным масштабом,
передав первым параметром число 12345, а вторым - масштаб 2:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal res = BigDecimal.valueOf(12345, 2);
System.out.println(res);
}
}
Результат выполнения кода:
123.45
Пример
Давайте сравним результат работы метода valueOf
и конструктора BigDecimal(double) для одного и того же числа:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal res1 = BigDecimal.valueOf(0.1);
BigDecimal res2 = new BigDecimal(0.1);
System.out.println(res1);
System.out.println(res2);
}
}
Результат выполнения кода:
0.1
0.1000000000000000055511151231257827021181583404541015625
Смотрите также
-
класс
BigDecimal,
который представляет неизменяемое десятичное число -
метод
add,
который складывает два числа BigDecimal -
метод
multiply,
который умножает два числа BigDecimal -
метод
compareTo,
который сравнивает два числа BigDecimal