1

我使用DecimalFormat类将数字格式化为字符串,反之亦然。

在我的数据库中,Java 双精度以特定方式表示:例如 128.88 存储“00012888”。为此,我使用“00000.00”模式并删除“。” 格式化后的小数分隔符,这不是一个聪明的解决方案。

有没有办法告诉 DecimalFormat 不要使用任何小数分隔符?我可以让它理解代表十进制数的字符串中的整数部分和小数部分在哪里吗?

我宁愿不必在转换之前进行乘法、除法、截断或舍入。这有什么神奇的模式吗?或者 DecimalFormat 类没有那么灵活?

我准确地说我不能使用 String.format() 方法,因为我在 Java 1.4 平台上工作。

谢谢你的帮助。

4

2 回答 2

0

DecimalFormat还不足以做到这一点。

你可以使用这样的方法:

double getD(String fixedWidthNumber) {
    return Double.valueOf(fixedWidthNumber.substring(0,6)+"."+fixedWidthNumber.substring(6,8));
}
于 2012-05-03T17:59:36.393 回答
0
BigDecimal value = new BigDecimal("234.33");
DecimalFormat decFrm = new DecimalFormat("000.00");
char decSep = decFrm.getDecimalFormatSymbols().getDecimalSeparator();
String resultStr = decFrm.format(value).replace(Character.toString(decSep), "");

结果:3423433

于 2016-03-18T10:42:22.860 回答