格式化存储为字符串的数字
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 已经为您提供的逻辑。使用double
和DecimalFormat
有什么问题吗?
不,这不是我的备份计划。但我宁愿不必将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.00
、0.20
或5.21
。 Double.valueOf(strDouble)
将您的String double
转换为double
。
【讨论】:
以上是关于格式化存储为字符串的数字的主要内容,如果未能解决你的问题,请参考以下文章