我总是被告知永远不要代表钱double或float类型,这次我向你提出问题:为什么?
我确信有一个很好的理由,我根本不知道它是什么.
有没有办法格式化小数如下:
100 -> "100"
100.1 -> "100.10"
Run Code Online (Sandbox Code Playgroud)
如果是圆数,则省略小数部分.否则格式化为两位小数.
我正在尝试使用DecimalFormat格式化价格,但这不适用于所有变体.
DecimalFormat df = new DecimalFormat("0.##")
df.format(7.8)
df.format(85.0)
Run Code Online (Sandbox Code Playgroud)
版画
7.80
Run Code Online (Sandbox Code Playgroud)
和
85
Run Code Online (Sandbox Code Playgroud)
但"7.79999"格式为"7.8",而不是"7.80".我试过这样做
DecimalFormat df = new DecimalFormat("0.00")
Run Code Online (Sandbox Code Playgroud)
强制两个dp,但"85.0"格式化为"85.00"而不是"85"!
有没有办法捕捉所有变化,以便价格打印为#,##或#.##?例如:
5,55,5.55,5.50,500,500.40