я работал над задачей, где я был поражен обработкой негативного сценария, упомянутый нижеКак отформатировать двойной с переменным количеством десятичных цифр
Если значение меньше 1, то я хочу, чтобы отформатировать (добавить) 4 десятичные точки к нему.
Например, если значение равно 0,4567, то мне нужно 0.4567
Или иначе, если значение больше 1 формат только с 2 цифрами.
Например, если значение 444,9, то мне нужно 444.90
Все, что выше работает нормально, но ударил об этом ниже условия
То есть, если значение меньше 1 и заканчивается в виде нулей (0,1000, 0,6000), это не имеет смысла печатать 0.2000, так что в этом случае я хочу выход быть только 0,20
Это моя программа ниже
package com;
import java.text.DecimalFormat;
public class Test {
public static void main(String args[]) {
try {
String result = "";
Test test = new Test();
double value = 444.9;
if (value < 1) {
result = test.numberFormat(value, 4);
} else {
result = test.numberFormat(value, 2);
}
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
public String numberFormat(double d, int decimals) {
if (2 == decimals)
return new DecimalFormat("#,###,###,##0.00").format(d);
else if (0 == decimals)
return new DecimalFormat("#,###,###,##0").format(d);
else if (3 == decimals)
return new DecimalFormat("#,###,###,##0.000").format(d);
else if (4 == decimals)
return new DecimalFormat("#,###,###,##0.0000").format(d);
return String.valueOf(d);
}
}
Условие, основанное на x < 1 || x > = 1, тогда, если оно <1 и заканчивается на «00», отключите их? –