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
}