格式化浮点数
我有一个 double
类型的变量,我需要以最多 3 位小数的精度打印它,但它不应该有任何尾随零......
例如。我需要
2.5 // not 2.500
2 // not 2.000
1.375 // exactly till 3 decimals
2.12 // not 2.120
尝试使用DecimalFormatter
,我做错了吗?
DecimalFormat myFormatter = new DecimalFormat("0.000");
myFormatter.setDecimalSeparatorAlwaysShown(false);
谢谢。 :)
I have a variable of type double
, I need to print it in upto 3 decimals of precision but it shouldn't have any trailing zeros...
eg. I need
2.5 // not 2.500
2 // not 2.000
1.375 // exactly till 3 decimals
2.12 // not 2.120
I tried using DecimalFormatter
, Am i doing it wrong?
DecimalFormat myFormatter = new DecimalFormat("0.000");
myFormatter.setDecimalSeparatorAlwaysShown(false);
Thanks. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试使用模式
"0.###"
而不是"0.000"
:输出:
Try the pattern
"0.###"
instead of"0.000"
:output:
您的解决方案几乎是正确的,但您应该用哈希值“#”替换十进制格式模式中的零“0”。
所以它应该看起来像这样:
并且该行不是必需的(因为
decimalSeparatorAlwaysShown
默认情况下是false
):这是 javadoc 的简短摘要:
以及 javadoc 的链接: < a href="http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html">DecimalFormat
Your solution is almost correct, but you should replace zeros '0' in decimal format pattern by hashes "#".
So it should look like this:
And that line is not necesary (as
decimalSeparatorAlwaysShown
isfalse
by default):Here is short summary from javadocs:
And the link to javadoc: DecimalFormat
使用 NumberFormat 类。
例子:
输出将为 2.5,而不是 2.500。
Use NumberFormat class.
Example:
Output will be 2.5, not 2.500.