Android:BigDecimal始终显示最多2位小数的数字

Android:BigDecimal始终显示最多2位小数的数字,android,bigdecimal,number-formatting,Android,Bigdecimal,Number Formatting,假设我有TotalAmount=10,或10.1或10.11或10.11111 String TotalAmount= ""; 我想要这个样式的金额。## 您可以尝试java.text.NumberFormat 10 -> 10.00 10.1 -> 10.10 10.11 -> 10.11 10.11111 -> 10.11 您可以尝试java.text.NumberFormat 10 -> 10.00 10.1 -> 10.10 10.11 ->

假设我有TotalAmount=
10
,或
10.1
10.11
10.11111

String TotalAmount= "";
我想要这个样式的
金额
。##


您可以尝试java.text.NumberFormat

10 -> 10.00
10.1 -> 10.10
10.11 -> 10.11
10.11111 -> 10.11

您可以尝试java.text.NumberFormat

10 -> 10.00
10.1 -> 10.10
10.11 -> 10.11
10.11111 -> 10.11
您可以使用(类似于NumberFormat但使用BigDecimal)

您可以使用(类似于NumberFormat但使用BigDecimal)

自己解决了这个问题

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
String res = nf.format(Amount);
System.out.println(res);
我自己解决的

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
String res = nf.format(Amount);
System.out.println(res);

获取错误12-26 19:57:02.357:E/AndroidRuntime(15870):致命异常:main 12-26 19:57:02.357:E/AndroidRuntime(15870):java.lang.IllegalArgumentException 12-26 19:57:02.357:E/AndroidRuntime(15870):at java.text.NumberFormat.format(NumberFormat.java:313)12-26 19:57:02.357:E/AndroidRuntime(15870):at java.text.DecimalFormat.format.format(DecimalFormat.java:732)12-26 19:57:02.357:E/AndroidRuntime(15870):at java.text.Format.Format(Format.java:133)金额应为BigDecimal而非Stringnow您的代码正在运行,但问题是BigDecimal未显示“.00”第二部分,这是问题所在unsolved@SyedZahidAli我用BigDecimal尝试了所有4个输入:10、10.1、10.11、10.111,它只返回了所需的结果。我不知道“BigDecimal没有显示“.00”是如何得到错误12-26 19:57:02.357:E/AndroidRuntime(15870):致命异常:main 12-26 19:57:02.357:E/AndroidRuntime(15870):java.lang.IllegalArgumentException 12-26 19:57:02.357:E/AndroidRuntime(15870):at java.text.NumberFormat.format(NumberFormat.java:313)12-26 19:57:02.357:E/AndroidRuntime(15870):at java.text.DecimalFormat.format(DecimalFormat.java:732)12-26 19:57:02.357:E/AndroidRuntime(15870):at java.text.format.format.java:133)金额应该是BigDecimal而不是Stringnow您的代码正在工作,但问题是BigDecimal并没有显示“.00”部分,这就产生了问题unsolved@SyedZahidAli我用BigDecimal尝试了所有4个输入:10、10.1、10.11、10.111,它只返回所需的结果。我不明白“BigDecimal不显示“.00”是什么意思