Java:将String转换为有效金额的正确方法是什么(BigDecimal)

时间:2010-04-08 20:21:59

标签: java bigdecimal

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

String amount = "1000";

BigDecimal valid_amount = convert(amount);

print(valid_amount.toString())//1000.00

使用什么样的API将String转换为Java中的有效金额(例如:apache commons library)?

提前致谢,

5 个答案:

答案 0 :(得分:8)

BigDecimal(String)构造函数怎么样?

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

如果要以不同方式格式化输出,请使用Formatter类。

答案 1 :(得分:5)

您的意思是达到以下目的:?

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

输出

$1,000.00

答案 2 :(得分:0)

使用new BigDecimal(strValue)

将为您节省The Evil BigDecimal Constructor

带来的巨大痛苦和痛苦

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果要打印十进制数,请使用setScale方法

path <- "SO/rails-master/"
dirs <- list.dirs(path)
branching_factor <- vector(length = length(dirs))
for (i in 1:length(dirs)) {
   branching_factor[i] <- length(list.dirs(path = dirs[i], recursive = FALSE))
}

result <- data.frame(Folders = basename(dirs), BranchingFactor = branching_factor)

> head(result)
       Folders BranchingFactor
1 rails-master              14
2      .github               0
3  actioncable               4
4          app               1
5       assets               1
6  javascripts               1