РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
625 of 1163 menu

Метод 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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить