double lnumber = Math.pow(2, 1000);
Run Code Online (Sandbox Code Playgroud)
版画 1.0715086071862673E301
我尝试过的事情
我试图通过使用BigDecimal类扩展此数字:
String strNumber = new BigDecimal(Double.toString(lnumber)).toPlainString();
Run Code Online (Sandbox Code Playgroud)
这只是打印:
10715086071862673000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
我也尝试过使用DecimalFormat:
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(0);
String strNumber = String.valueOf(df.format(lnumber));
Run Code Online (Sandbox Code Playgroud)
打印相同的东西:
10715086071862673000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
根据Wolfram Alpha的实际答案是

如何打印所有实际值?
Mau*_*res 10
你不能混合和匹配Math,原始类型和BigDecimal,如果你想要真正的精度,只需使用BigDecimal:
BigDecimal value = new BigDecimal(2);
System.out.println(value.pow(1000));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |