我正在尝试创建一个接收 double 并返回格式为小数点后始终为 2 个数字的字符串的方法。
例如:
1990.999 -> "1990.99"
1990.9 -> "1990.90"
我正在使用 Android min sdk 版本 21 开发应用,因此我无法使用 DecimalFormat。我设法做出像这样工作的东西:
public String currencyFormat(double value) {
return value < 0
? String.format("-" + currencySymbol + "%.02f", value * -1)
: String.format(currencySymbol + "%.02f", value);
}
但是,这里的问题是如果我尝试 1999,369,结果是“1999,37”。有没有办法防止舍入?
最佳答案
您可以改用此方法:
public static String currencyFormat(double value) {
value = Math.floor(value * 100) / 100; // rounds 'value' to 2 decimal places
return String.format("%.2f", value); // converts 'value' to string
}
关于java - Android 中 DecimalFormat 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43054480/