Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 使用DecimalFormat格式化0以包含小数位数_Java_Decimal_Decimalformat_Decimal Precision - Fatal编程技术网

Java 使用DecimalFormat格式化0以包含小数位数

Java 使用DecimalFormat格式化0以包含小数位数,java,decimal,decimalformat,decimal-precision,Java,Decimal,Decimalformat,Decimal Precision,输出为: import java.math.BigDecimal; import java.text.DecimalFormat; public class HelloWorld{ public static void main(String []args){ DecimalFormat df = new DecimalFormat("#.##"); System.out.println("two decimals: " + new BigDec

输出为:

import java.math.BigDecimal; 
import java.text.DecimalFormat;

public class HelloWorld{

     public static void main(String []args){
        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println("two  decimals: " + new BigDecimal(df.format(123.435435))) ;
        System.out.println("zero two decimal places: " + new BigDecimal(df.format(0.0000))) ;
        System.out.println("zero without a decimal place: " + new BigDecimal(df.format(0))) ;
     }
}
现在,
DecimalFormat df=newdecimalformat(“#.##”)

这是在我的应用程序中广泛使用的东西,我还没有修改它的选项。 如何在上述程序中将0打印为0.00

根据格式,带“#”的字符将显示零作为不存在。即使相关数字为零,也可以使用“0”无条件地显示小数点

请注意,大小数用于要求高精度的计算,例如金融应用。如果您只需要打印格式化的数字,那么实际上并不需要它们

three decimals: 123.44
zero two decimal places: 0
zero without a decimal place: 0
使用大小数:

  DecimalFormat df = new DecimalFormat("#.##");
  DecimalFormat dfWithZeroes = new DecimalFormat("0.00");
  System.out.println("two  decimals: " + df.format(123.435435));
  System.out.println("zero two decimals: " + dfWithZeroes.format(0.0000));
  System.out.println("zero without a decimal: " + df.format(0));

小数点,而不是“点”。同样的情况也会发生在
123.00
上。试试
“#.00”
#
基本上是“可选”的意思。是的。应用程序需要高精度的数字。因此,我正在寻找解决方案。我添加了一个带有大小数的示例。新的示例是毫无意义的。如果您已经有了不会通过
DecimalFormst
截断的值,那么您将使用
BigDecimal
@user207421的API。我使用了比例法,它按照我的期望工作。发布我的新代码作为答案。谢谢你的提示。
  System.out.println("two  decimals: " + new BigDecimal(df.format(123.435435)));
  System.out.println("zero two decimals: " + new BigDecimal(dfWithZeroes.format(0.0000)));
  System.out.println("zero without a decimal: " + new BigDecimal(df.format(0)));
import java.math.BigDecimal; 
import java.text.DecimalFormat;

public class HelloWorld{

public static void main(String []args){
  DecimalFormat df = new DecimalFormat("#.##");

  System.out.println("");
  System.out.println("------------Handling zero with Decimal Formatter API------------");
  System.out.println("");


  DecimalFormat dfWithZeroes = new DecimalFormat("0.0");
  System.out.println("two  decimals: " + df.format(123.435435));
  System.out.println("zero two decimals: " + dfWithZeroes.format(0));
  System.out.println("zero without a decimal: " + df.format(0));

  System.out.println("");
  System.out.println("------------Handling zero with BigDecimal API------------");
  System.out.println("");

  BigDecimal zero = BigDecimal.ZERO;
  System.out.println("Zero without scaling " + zero);
  System.out.println("Zero with scale 1: " + zero.setScale(1));
  System.out.println("Zero with scale 2: " + zero.setScale(2));
  System.out.println("Zero with scale 3: " + zero.setScale(3));
 }
}