Java 小数点后的固定位数
我有许多描述不同对象的Java 小数点后的固定位数,java,numbers,double,decimal,Java,Numbers,Double,Decimal,我有许多描述不同对象的double数字 例如: Object A double a = 10.12 double b = 10.1223 double c = 10.12345 Object B double a = 10.12 double b = 10.1223 double c = 10.12345 …我希望在小数点后有固定数量的数字,例如,对象A必须在小数点后有5(五)个数字,对象B必须在小数点后有2(两)个数字,并向上舍入。我想实
double
数字
例如:
Object A
double a = 10.12
double b = 10.1223
double c = 10.12345
Object B
double a = 10.12
double b = 10.1223
double c = 10.12345
…我希望在小数点后有固定数量的数字,例如,对象A必须在小数点后有5(五)个数字,对象B必须在小数点后有2(两)个数字,并向上舍入。我想实现这样的目标:
Object A
10.12000
10.12230
10.12345
Object B
10.12
10.12
10.12
我尝试了setMinimumFractionDigits(5)
或setMinimumFractionDigits(2)
,但我有很多对象,首先必须在小数点后有一个数字,其他需要5等。这是一个大项目,是面向对象的
你知道我怎样才能做到这一点吗 请通过创建
DecimalFormat
obj来更改代码,并将其用于格式化Double
对象
private static DecimalFormat fiveDigitFormat= new DecimalFormat(".#####");
private static DecimalFormat twoDigitFormat= new DecimalFormat(".##");
fiveDigitFormat.format(objA);
twoDigitFormat.format(objB);
请通过创建
DecimalFormat
obj来更改代码,并将其用于格式化Double
对象
private static DecimalFormat fiveDigitFormat= new DecimalFormat(".#####");
private static DecimalFormat twoDigitFormat= new DecimalFormat(".##");
fiveDigitFormat.format(objA);
twoDigitFormat.format(objB);
如评论中所述,请查看 对于您来说,它将如下所示:
// For Object A
DecimalFormat dfForObjA = new DecimalFormat("#.#####");
dfForObjA.setRoundingMode(RoundingMode.CEILING);
for (double d : A) { // Assuming A is already declared and initialized
System.out.println(dfForObjA.format(d));
}
// For Object B
DecimalFormat dfForObjB = new DecimalFormat("#.##");
dfForObjB.setRoundingMode(RoundingMode.CEILING);
for (double d : B) { // Assuming B is already declared and initialized
System.out.println(dfForObjB.format(d));
}
注意:对于For-each循环,我不太确定如何用对象实现它,因为不清楚它们到底是什么或者它们是如何定义的。如注释中所述,请检查 对于您来说,它将如下所示:
// For Object A
DecimalFormat dfForObjA = new DecimalFormat("#.#####");
dfForObjA.setRoundingMode(RoundingMode.CEILING);
for (double d : A) { // Assuming A is already declared and initialized
System.out.println(dfForObjA.format(d));
}
// For Object B
DecimalFormat dfForObjB = new DecimalFormat("#.##");
dfForObjB.setRoundingMode(RoundingMode.CEILING);
for (double d : B) { // Assuming B is already declared and initialized
System.out.println(dfForObjB.format(d));
}
注意:对于For-each循环,我不太确定如何准确地用对象实现它,因为不清楚它们到底是什么或它们是如何定义的。您也可以简单地使用:
double a = 10.12;
double b = 10.1223;
double c = 10.12345;
System.out.println(String.format("%.5f", a));
System.out.println(String.format("%.5f", b));
System.out.println(String.format("%.2f", c));
它打印:
10.12000
10.12230
10.12
您也可以简单地使用:
double a = 10.12;
double b = 10.1223;
double c = 10.12345;
System.out.println(String.format("%.5f", a));
System.out.println(String.format("%.5f", b));
System.out.println(String.format("%.2f", c));
它打印:
10.12000
10.12230
10.12
请先阅读以下官方文件:请先阅读以下官方文件: