我需要将 csv 中的确切值存储到数据库中。这些列有货币值(value)。所以 使用 BigDecimal 存储货币值。
考虑以下不同情况的示例:
案例一:
BigDecimal d=new BigDecimal(1);
System.out.println(d);
我得到了预期的输出“1”。
案例二:
但是当我给它加一个小数时,我得到了不同的结果。
BigDecimal d=new BigDecimal(1.1);
System.out.println(d);
我得到“1.1000000000000000088817841970012523233890533447265625”作为上述代码的输出。
案例三:
BigDecimal d=new BigDecimal(2.50);
System.out.println(d);
我得到“2.5”作为上述代码的输出。在这种情况下,它省略了零。
我的客户需要传递给存储在数据库中的完全相同的值。 由于 ,这些值与金钱相关,我不能使用 String 来存储它们。
那么应该怎样做才能获得与我们传递给 Big Decimals 的值完全相同的值?
最佳答案
您可以使用带有String
参数的构造函数
。
BigDecimal d=new BigDecimal("1");
System.out.println(d.toString());//Will print 1
BigDecimal d=new BigDecimal("1.1");
System.out.println(d.toString()); //Will print 1.1
BigDecimal d=new BigDecimal("2.50");
System.out.println(d.toString()); //Will print 2.50
关于java - 在 Java 中使用 BigDecimal 打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27707070/