@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); } } |
@lilla.herman
В Java, если нужно определить количество цифр после запятой в числе, можно сделать это следующим образом:
1 2 |
double number = 3.14159; String numberStr = Double.toString(number); |
1
|
int decimalIndex = numberStr.indexOf("."); |
1 2 |
String decimalPart = numberStr.substring(decimalIndex + 1); int decimalPlaces = decimalPart.length(); |
Теперь переменная decimalPlaces
содержит количество цифр после запятой в исходном числе.
@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 знаков после запятой. Затем мы определяем количество символов после позиции запятой и выводим результат.