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

Moh*_*wan 2 java double

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

让我们来,

Double d = new Double(123456789987654321123456789d);
System.out.println(d);
Run Code Online (Sandbox Code Playgroud)

输出是:

1.2345678912345678E35
Run Code Online (Sandbox Code Playgroud)

但我想要,

123456789987654321123456789
Run Code Online (Sandbox Code Playgroud)

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

我已经尝试了所有的排列使用BigDecimal,BigInteger等等.

注意:我想填充JSON所以请不要仅仅建议一个print声明.

我已经读过了:

YCF*_*F_L 6

试试这个BigDecimal::toPlainString:

BigDecimal d = new BigDecimal("123456789987654321123456789");
String result = d.toPlainString();
Run Code Online (Sandbox Code Playgroud)

d的输出是:

123456789987654321123456789
Run Code Online (Sandbox Code Playgroud)

要填充到JSon有很多方法,我不确定你想要什么,但也许这可以帮助你如何使用String创建JSON对象?:

BigDecimal d = new BigDecimal("123456789987654321123456789");

JSONObject myObject = new JSONObject();
myObject.put("number", d.toPlainString());
Run Code Online (Sandbox Code Playgroud)

  • @Lino使用该值填充JSON会因OP使用的JSON库而异.由于OP没有共享任何有关该信息的信息,我们无法就如何将此值添加到JSON对象给出一个很好的答案. (3认同)