Java - 四舍五入 99999999999999.9999

标签 java rounding

我正在尝试 Java 中的舍入和格式化技术,因为我必须以某些特定格式将我的值保存在数据库中。

我的数据库列的数据精度为18,4,这意味着最多14个整数和4个小数位。

现在我正在尝试最大可能值的情况,即 99999999999999.9999。当我执行下面的代码时,我得到的舍入值是 1000000000000000。但是,我想存储提供的确切值。

有人可以建议将其保留在 java 变量中吗?

    DecimalFormat df2 = new DecimalFormat( "#.####" );
    df2.setRoundingMode(RoundingMode.CEILING);
    double number = Double.parseDouble("99999999999999.9999");
    System.out.println("Format: " + df2.format(number));

最佳答案

您可以使用BigDecimal

BigDecimal number = new BigDecimal("99999999999999.9999");

关于Java - 四舍五入 99999999999999.9999,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60734020/

相关文章:

Java Double/Float 的意外舍入

SQL 服务器。如何考虑所有小数位对小数进行四舍五入

r - 控制数字/舍入作为基本函数中的参数

Java语法问题

java - 检测整数的变化

java - 为什么使用 cookie 而不是记录每笔交易

javascript - 将分数乘以数字求和并四舍五入以等于数字?

c - 如何判断用户输入的小数位有多少位?

java - 字节缓冲区内存分配

java - UDP 套接字数据报接收数据包 2x 以获取完整消息