java - Android 中 DecimalFormat 的替代品

标签 java android oop sdk android-version

我正在尝试创建一个接收 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/

相关文章:

Java SQL 更新查询不工作

Android Studio - 这个资源文件结构技巧是如何实现的?

android - 如何在 Jetpack Compose 中分分钟重构?

actionscript-3 - 以 OOP 正确的方式访问父类

java - 当我们创建一个类的对象并使用另一个类引用它时到底会发生什么

java - 使用不同类中对象的实例变量

java - 使用 Apache POI 更改行的背景颜色

c# - 让业务逻辑对象提示用户输入是不是糟糕的设计?

Java-将完成的线程对象分配给新线程

android - Anko doAsyncResult 协程