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));
}
}