带两个十进制数的Java双精度
比如说,我有以下代码:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
df.format(125,436573);
现在返回一个字符串
既然您无法将String
转换为double
(使用cast),那么如何获得类型double
据我所知,这只会删除两位数之后的所有内容,而不是实际的四舍五入
我一直在寻找Java.lang.math
对象,但似乎找不到解决方案
对于记录,我需要将它插入到数据库表中
# 1 楼答案
您可以使用commons-math3
Precision.round(double x, int scale)
# 2 楼答案
这是一个例子,我不确定你问的问题是你真正想提出的问题。似乎您希望小数点正好有两位小数,但这不仅仅是最终输出格式的问题,而是持久性的问题
你不想用
doubles
来做这件事 你会得到舍入错误,因为小数不能准确地存储在二进制记数法中。出于同样的原因,你不想在数据库中存储双倍的钱。(Link,link,link)正如您在那里的链接中看到的,您希望在数据库中使用带有隐含小数点、BigDecimal或数字字段的整数组合
# 3 楼答案
这是我用来四舍五入到小数点后两位的
你不需要产生一个字符串,这样你就可以再次解析它