使用NumberFormat将美分转换为欧元

时间:2013-07-02 10:04:00

标签: java android java-ee

我有long类型的值,代表货币美分。我尝试将其转换为欧元。所以,我做了以下几点:

long val = 348;
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.FRANCE);
System.out.println(nf.format(val/100));

我认为上面的代码会打印出3,48 €,但我得到了3,00 €。为什么呢?

2 个答案:

答案 0 :(得分:2)

因为val / 100是一个Integer操作,所以小数部分被剥离。例如 int i = 1; int result = i / 2;将为您提供0

Change to System.out.println(nf.format(((float)val/100)));

答案 1 :(得分:2)

要强制浮点运算,您可以使用双字面100.0或浮点字面100.0f

System.out.println(nf.format(val/100.0));