Java 具有最小2个小数位数的BigDecimal
我看到了,但我有一点不同的问题 我将带有BigDecimal参数的对象提供给PDF生成库,但我不能使用格式化程序,只能发送对象。默认toString方法是否总是以*.xx w.g 134.40格式写入BigDecimal对象Java 具有最小2个小数位数的BigDecimal,java,currency,tostring,bigdecimal,Java,Currency,Tostring,Bigdecimal,我看到了,但我有一点不同的问题 我将带有BigDecimal参数的对象提供给PDF生成库,但我不能使用格式化程序,只能发送对象。默认toString方法是否总是以*.xx w.g 134.40格式写入BigDecimal对象 我使用setScale,但它不适用于例如134.300,因为它编写134.3而不是134.30只需使用NumberFormat.getCurrencyInstance().format(n)并将结果字符串传递到PDF生成库。只需使用NumberFormat.getCurre
我使用setScale,但它不适用于例如134.300,因为它编写134.3而不是134.30只需使用
NumberFormat.getCurrencyInstance().format(n)
并将结果字符串传递到PDF生成库。只需使用NumberFormat.getCurrencyInstance().format(n)
并将结果字符串传递到PDF生成库。我假设问题在于您忘记了BigDecimal是不可变的,setScale不会改变现有的BigDecimal
BigDecimal decimal = BigDecimal.valueOf(134.4);
BigDecimal decimal2 = decimal.setScale(2, RoundingMode.HALF_UP);
System.out.println(decimal2);
印刷品
134.40
顺便说一句,用double做同样的事情
double d = 134.4;
System.out.printf("%.2f%n", d);
我假设问题是您忘记了BigDecimal是不可变的,setScale不会改变现有的BigDecimal
BigDecimal decimal = BigDecimal.valueOf(134.4);
BigDecimal decimal2 = decimal.setScale(2, RoundingMode.HALF_UP);
System.out.println(decimal2);
印刷品
134.40
顺便说一句,用double做同样的事情
double d = 134.4;
System.out.printf("%.2f%n", d);
当你尝试时它给出了什么??你尝试过这个-yourBigDecimal.SetScale(2,RoundingMode.HALF_UP)代码>当你尝试时它给出了什么??你有没有尝试过这个-yourBigDecimal.SetScale(2,RoundingMode.HALF_UP)代码>