Java货币编号格式
有没有一种格式可以如下设置小数:
100 -> "100" 100.1 -> "100.10"
如果是整数,则省略小数部分。否则,格式要保留两位小数。
回答:
我对此表示怀疑。问题是,如果是浮点数,则100永远不会为100,通常为99.9999999999或100.0000001或类似的值。
如果确实要用这种方式格式化,则必须定义一个epsilon,即距整数的最大距离,如果差较小,则使用整数格式化,否则使用浮点数。
这样的事情可以解决问题:
public String formatDecimal(float number) { float epsilon = 0.004f; // 4 tenths of a cent
if (Math.abs(Math.round(number) - number) < epsilon) {
return String.format("%10.0f", number); // sdb
} else {
return String.format("%10.2f", number); // dj_segfault
}
}
以上是 Java货币编号格式 的全部内容, 来源链接: utcz.com/qa/397442.html