java - 将十进制数转换为完整整数 - BigDecimal 是否矫枉过正?

标签 java bigdecimal

我想将英里转换为公里。在这种情况下使用 BigDecimal 是否太过分了?

我可以在不使用 BigDecimals 的情况下改进以下内容吗?我想四舍五入到最接近的整数。我对小数不感兴趣。

private static final BigDecimal MILE = new BigDecimal(1.609344);

String milesToKm(String miles) {
    return new BigDecimal(miles).multiply(MILE).setScale(0, RoundingMode.HALF_UP).toString();
}

最佳答案

只使用 double 有什么问题吗?

int km = (int) Math.round(miles * 1.609344D);

如果您四舍五入为整数,为什么还要担心微小的精度误差呢?

关于java - 将十进制数转换为完整整数 - BigDecimal 是否矫枉过正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20126152/

相关文章:

java - 从java中的不同类调用主类中的函数

java - 在 slf4j 运行时设置消息的日志级别

java - 如何在 Java 中对 BigDecimal 进行小数幂运算?

java - 不进行任何舍入,最多保留 3 位小数

java - 链表之外的字符串,对象的高效构造函数

java - 请求从 Ext JS 传输到 Java 期间数据发生变化

java - 在 Java 中将两个数字精确相乘

java - 与目标 VM 断开连接,地址 : '127.0.0.1:51928' , 传输: 'socket'

java - 我需要了解 Haskell 如何表示数据才能编写好的 Haskell 程序吗?

java - 将 BigDecimal 舍入为整数值