在BigDecimal中显示0.20而不是0.2

时间:2012-05-18 12:54:54

标签: java bigdecimal

我有一个问题:)

  

BigDecimal val = BigDecimal.valueOf(0.20);
          的System.out.println(一);

我想在val中存储一个值0.20,而不是0.2。 我能做什么?

3 个答案:

答案 0 :(得分:5)

如果要控制数字的格式,请查看NumberFormat,尤其是具体的DecimalFormat子类。

您可以从模式中创建DecimalFormat,也可以直接设置它的各个方面。然后,您要求它格式化您的BigDecimal,它会为您提供字符串。

答案 1 :(得分:2)

以下是如何使用DecimalFormat来满足您需求的小例子

double d = 1.2345;
DecimalFormat df = new DecimalFormat("#0.00");
System.out.println(df.format(d)); // will print 1.23
d = 3.400;
System.out.println(df.format(d)); // will print 3.40
d = 3.456;
System.out.println(df.format(d)); // will print 3.46

BigDecimal b = new BigDecimal(0.20001);
System.out.println(df.format(b)); // will print 0.20

答案 2 :(得分:0)

您无法在变量中存储0.20而不是0.2,因为它们的值相同。但是,您可以更改结果的打印方式。

你的问题让我假设你是Java编程的初学者。您应该阅读this tutorial,以便详细了解其工作原理,而不只是简单回答。