Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 小数点后的固定位数_Java_Numbers_Double_Decimal - Fatal编程技术网

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

请先阅读以下官方文件:请先阅读以下官方文件: