【发布时间】:2012-05-13 06:51:24
【问题描述】:
我使用DecimalFormat 类将数字格式化为字符串,反之亦然。
在我的数据库中,Java 双精度以特定方式表示:例如 128.88 存储为“00012888”。为此,我使用“00000.00”模式并删除“。”格式化后的小数分隔符,这不是一个聪明的解决方案。
有没有办法告诉 DecimalFormat 不要使用任何小数分隔符?我可以让它理解代表十进制数的字符串中的整数部分和小数部分在哪里?
我不希望在转换之前不必进行乘法、除法、截断或舍入。 这有什么神奇的模式吗?还是 DecimalFormat 类不够灵活?
我不能使用 String.format() 方法,因为我在 Java 1.4 平台上工作。
感谢您的帮助。
【问题讨论】:
-
不能把数据库列改成
DECIMALS(9, 2)吗?还是会无点存放,比较正常。此外,BigDecimal 非常笨拙,但比 double 更好。您可以使用正确的列定义创建视图,只需 getDouble 或 getBigDecimal。 -
不,很遗憾。但是 BigDecimal 似乎是一个很好的解决方案。谢谢!
标签: java double decimalformat