3

我必须将传入的字符串字段转换为代表有效金额的 BigDecimal 字段,例如:

String amount = "1000";

BigDecimal valid_amount = convert(amount);

print(valid_amount.toString())//1000.00

使用 Java 将字符串转换为有效金额的正确 API 是什么(例如:apache commons library)?

提前致谢,

4

5 回答 5

8

BigDecimal(String)构造函数呢?

String amount = "1000";
BigDecimal validAmount = new BigDecimal(amount);
System.out.println(validAmount); // prints: 1000

如果您想以不同的方式格式化输出,请使用Formatter该类。

于 2010-04-08T20:30:41.333 回答
6

你的意思是实现以下目标:?

NumberFormat nf = NumberFormat.getCurrencyInstance();
System.out.println(nf.format(new BigDecimal("1000")));

输出

$1,000.00
于 2010-04-08T20:56:07.913 回答
1

如果要打印小数,请使用 setScale 方法

String amount = "1000";
BigDecimal validAmount = new 
BigDecimal(amount).setScale(2,RoundingMode.CEILING);
System.out.println(validAmount); // prints: 1000.00
于 2017-06-16T12:58:08.190 回答
0

使用new BigDecimal(strValue).

将为您节省由The Evil BigDecimal Constructor造成的巨大痛苦和痛苦

于 2010-04-08T20:34:14.763 回答
0

有处理货币价值的Joda-Money库。但是,据该网站称,“当前的开发版本旨在用于反馈而非生产使用。”

于 2010-04-09T05:31:51.617 回答