Метод stripTrailingZeros
Метод stripTrailingZeros класса BigDecimal
удаляет незначащие нули, стоящие в конце
дробной части числа. Метод не принимает
параметров и возвращает новый объект
BigDecimal, у которого убраны все
завершающие нули справа от десятичной точки.
Если число не содержит дробной части или
завершающих нулей, метод возвращает
эквивалентное число без изменений.
Исходный объект при этом не изменяется,
так как класс BigDecimal является
неизменяемым.
После удаления нулей значение числа остаётся тем же, но меняется его масштаб (scale) и внешний вид. Это особенно полезно при нормализации результатов вычислений, когда требуется избавиться от лишних нулей, получившихся, например, после деления или умножения.
Синтаксис
public BigDecimal stripTrailingZeros()
Пример
Давайте создадим число с незначащими нулями
в конце и уберём их с помощью метода
stripTrailingZeros:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal num = new BigDecimal("123.45000");
BigDecimal res = num.stripTrailingZeros();
System.out.println(num);
System.out.println(res);
}
}
Результат выполнения кода:
123.45000
123.45
Пример
Давайте посмотрим, как меняется масштаб числа после вызова метода:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal num = new BigDecimal("100.000");
BigDecimal res = num.stripTrailingZeros();
System.out.println("scale before: " + num.scale());
System.out.println("scale after: " + res.scale());
System.out.println("value: " + res);
}
}
Результат выполнения кода:
scale before: 3
scale after: -1
value: 1E+2
Обратите внимание: число 100.000 после
удаления нулей превращается в 1E+2,
что равно 100, а масштаб становится
отрицательным.
Пример
Давайте применим метод к целому числу без дробной части:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal num = new BigDecimal("12345");
BigDecimal res = num.stripTrailingZeros();
System.out.println(res);
}
}
Результат выполнения кода:
12345
Смотрите также
-
класс
BigDecimal,
который представляет неизменяемые десятичные числа -
метод
setScale,
который задаёт масштаб числа -
метод
scale,
который возвращает масштаб числа -
метод
toPlainString,
который возвращает строку без экспоненты