格式化存储为字符串的数字

Posted

技术标签:

【中文标题】格式化存储为字符串的数字【英文标题】:Format a number stored as a String 【发布时间】:2015-04-22 01:48:39 【问题描述】:

我有一个String,它表示从输入传递的金额,可以选择包含小数点和尾随零。它可能看起来像以下任何一种:

inputA = "123.45"
inputB = "123"
inputC = "123.4"
inputD = ".50"

有没有办法转换这些格式,使它们都具有0.00 格式,小数点左侧至少有一位数字,右侧至少两位,而无需转换为 BigDecimal 等数字对象,然后回来了吗?

【问题讨论】:

很好!分享您的代码并告诉我们您遇到的问题 是的。但是您已经重写了 Java 已经为您提供的逻辑。使用doubleDecimalFormat 有什么问题吗? 不,这不是我的备份计划。但我宁愿不必将String 转换为double,然后再转换回String,如果我能提供帮助的话。 【参考方案1】:

可以使用DecimalFormat来实现格式化。

DecimalFormat format = new DecimalFormat("##0.00");
System.out.println(format.format(10));

输出:10.00

【讨论】:

【参考方案2】:

技巧:

String formattedDouble=String.format("%.2f", Double.valueOf(strDouble));

而且,%.2f 会将您的double 格式化为1.000.205.21Double.valueOf(strDouble) 将您的String double 转换为double

【讨论】:

以上是关于格式化存储为字符串的数字的主要内容,如果未能解决你的问题,请参考以下文章

mysql怎么把时间格式转化为数字

vba怎么存储17位数字

oracle转换数字到格式化字符串

如何将数字格式化为货币字符串

10-格式化文件存储-正则表达式re

Oracle:检查数字列是不是包含格式化数字字符串中的值