1
76
通过
你的意思是你想四舍五入到小数点后五位吗?那就用吧
(当然你也可以
|
2
25
问题是十进制格式将值转换为本地化字符串。我猜您的区域设置的默认小数分隔符应该是a'
基本上,您需要做的是使用“.”分隔符创建格式化日期,因此
|
3
5
格式化字符串使用的事实
一般来说,您应该构造一个
来自Javadocs的 DecimalFormat :
然而
as BalusC points out
尝试将double格式化为字符串,然后将字符串解析回double,这是非常糟糕的代码味道。我怀疑您正在处理的问题是,您希望得到一个固定精度的十进制数字(如货币金额),但却遇到了问题,因为double是一个浮点数,这意味着许多值(如
|
4
3
使用
|
5
3
看起来您的本地使用逗号“,”作为小数分隔符。要获取“.”作为小数分隔符,必须声明:
|
6
2
不能更改的内部表示形式
如果你想改变(人的)表现形式,就保留它。
顺便问一下,根据你的抱怨
我正试图在我的双精度值的小数分隔符之后去掉不必要的符号。
,
are you aware of the internals of floating point numbers
?闻起来有点像您在表示层中使用了未格式化的双精度函数,并且您没有意识到,对于一般的用户界面,您可以使用
|
7
2
与此有点关联,但不是问题的答案:尝试切换到bigdecimal而不是double和float。我对这些类型的比较有很多问题,现在我很乐意使用bigdecimal。 |
8
2
|
9
2
真正的解决方案是:不要对需要精确计算的任何内容使用浮点数字:
浮点数几乎总是一些实值的近似值。它们适用于物理量(最高精度)的测量和计算以及统计伪影。 把浮点数四舍五入到若干位是一种代码味道:这是浪费,你永远不能真正确定你的代码在所有情况下都能正常工作。 |
10
0
我的代码功能:
|