我在Double值操作中遇到问题。
让我们走吧,
Double d = new Double(123456789987654321123456789d);
System.out.println(d);
输出结果为:
1.2345678912345678E35
但我想,
123456789987654321123456789
没有任何表示法的完整数字。
我使用BigDecimal
,BigInteger
等等尝试了所有排列。
注意:我想填充JSON,所以请不要只提出print
声明。
我已经读过:
答案 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将被舍入