Как определить количество цифр после запятой в Java?

Пользователь

от lilla.herman , в категории: Java , 2 года назад

Как определить количество цифр после запятой в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от dmitrypro77 , 2 года назад

@lilla.herman Как вариант сконвертировать в строку и найти определить позицию точку (используя indexOf()) и из длины всей строки вычесть позицию точки, код как пример:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class Main {
    public static void main(String[] args) {
        double num = 12.123;
        String str = Double.toString(Math.abs(num));

        int dotPosition = str.indexOf('.') + 1;
        int result = str.length() - dotPosition;
        // Вывод: 3
        System.out.println(result);
    }
}


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от stephania , год назад

@lilla.herman 

В Java, если нужно определить количество цифр после запятой в числе, можно сделать это следующим образом:

  1. Преобразуйте число в строку с помощью метода toString():
1
2
double number = 3.14159;
String numberStr = Double.toString(number);


  1. Найдите позицию символа "." (запятой) в строке с помощью метода indexOf():
1
int decimalIndex = numberStr.indexOf(".");


  1. Получите подстроку после символа ".", начиная с позиции decimalIndex + 1, и найдите количество символов в этой подстроке с помощью метода length():
1
2
String decimalPart = numberStr.substring(decimalIndex + 1);
int decimalPlaces = decimalPart.length();


Теперь переменная decimalPlaces содержит количество цифр после запятой в исходном числе.

Пользователь

от caterina , год назад

@lilla.herman 

В Java нет специального типа данных для хранения чисел с фиксированной точностью после запятой. Однако, вы можете использовать методы и функции для работы с числами, чтобы определить количество цифр после запятой.


Например, вы можете использовать методы класса BigDecimal для работы с числами с плавающей точкой с заданной точностью:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal number = new BigDecimal("3.14159");
        String[] parts = number.toString().split("\.");
        
        if (parts.length > 1) {
            int decimalPlaces = parts[1].length();
            System.out.println("Количество цифр после запятой: " + decimalPlaces);
        } else {
            System.out.println("Не найдено цифр после запятой.");
        }
    }
}


Этот пример показывает, как разделить число на две части: целую и десятичную. Затем мы определяем количество символов в десятичной части и выводим результат.


Если у вас есть число типа double, вы можете использовать DecimalFormat для форматирования числа с фиксированной точностью и затем определить количество цифр после запятой:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import java.text.DecimalFormat;

public class Main {
    public static void main(String[] args) {
        double number = 3.14159;
        DecimalFormat decimalFormat = new DecimalFormat("#.########");
        String formattedNumber = decimalFormat.format(number);
        
        int decimalPlaces = formattedNumber.length() - formattedNumber.indexOf('.') - 1;
        System.out.println("Количество цифр после запятой: " + decimalPlaces);
    }
}


В этом примере мы используем DecimalFormat для форматирования числа с максимальной точностью 8 знаков после запятой. Затем мы определяем количество символов после позиции запятой и выводим результат.