千分隔符:“。” (点) 小数分隔符:“,”(逗号)。 我住在意大利。
我从API获得这个值(它是一个字符串):
"balance":"1254.00".
在我需要将其转换为整数值的情况下:
1.254
没有小数部分(如果不是零,也没有向上或向下)。
在另一种情况下,我可以(它是一个字符串):
"balance":"1234.56"
在这种情况下,我需要
1.234,56
对几个功能感到疯狂,没有达到我的目标。
E.g。我试过了:
NumberFormat numberFormat = new DecimalFormat("#,##");
BigDecimal balance_numeric = new BigDecimal(this.raw_balance.replaceAll(",", ""));
balance = String.valueOf(numberFormat.format(balance_numeric));
获得第一个案例(1254
)和12,54
,对我来说毫无意义。
非常感谢。
答案 0 :(得分:0)
代码几乎是不言自明的。如果您需要帮助,请发表评论。 :)
DecimalFormat format = new DecimalFormat();
DecimalFormatSymbols sm = DecimalFormatSymbols.getInstance();
sm.setDecimalSeparator(',');
sm.setGroupingSeparator('.');
format.setDecimalFormatSymbols(sm);
System.out.println(format.format(1254.02));
编辑1
有alternative我不知道。
NumberFormat nf = NumberFormat.getNumberInstance(Locale.ITALIAN);
DecimalFormat df = (DecimalFormat)nf;
您可以使用Locale做一些很棒的东西!
答案 1 :(得分:0)
如果我理解正确,API总是返回一个十进制数。如果小数部分为零,则需要数字的整数部分。如果没有,你想要整个十进制数。
String s = "1234.00";
Double d = new Double(s);
double f = d - d.longValue();
if (f == .0) {
// format d.longValue() as int
} else {
// format d as double
}