如何从最长双值的double中删除科学记数法

时间:2017-12-14 09:08:55

标签: java double

我在Double值操作中遇到问题。

让我们走吧,

Double d = new Double(123456789987654321123456789d);
System.out.println(d);

输出结果为:

1.2345678912345678E35

但我想,

123456789987654321123456789

没有任何表示法的完整数字。

我使用BigDecimalBigInteger等等尝试了所有排列。

注意:我想填充JSON,所以请不要只提出print声明。

我已经读过:

2 个答案:

答案 0 :(得分:5)

试试这个BigDecimal::toPlainString

BigDecimal d = new BigDecimal("123456789987654321123456789");
String result = d.toPlainString();

d的输出是:

123456789987654321123456789

要填充到JSon有很多方法,我不确定你想要什么,但也许这可以帮助你How to create JSON Object using String?

BigDecimal d = new BigDecimal("123456789987654321123456789");

JSONObject myObject = new JSONObject();
myObject.put("number", d.toPlainString());

答案 1 :(得分:0)

你可以试试这个

String str = String.format("%.0f", d);

请注意,双倍可容纳的最大数字为~17,因此123456789987654321123456789将被舍入