Android 中 DecimalFormat 的替代方案
Alternative to DecimalFormat in Android
我正在尝试制作一个接收双精度和 returns 格式为小数点后始终有 2 个数字的字符串的方法。
例如:
1990.999 -> “1990.99”
1990.9 -> “1990.90”
我正在使用 Android 最小 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
}
我正在尝试制作一个接收双精度和 returns 格式为小数点后始终有 2 个数字的字符串的方法。
例如:
1990.999 -> “1990.99”
1990.9 -> “1990.90”
我正在使用 Android 最小 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
}