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

回到顶部