使用java我需要计算1 /(2 ^ 50)
的值我的价值为0.0000000000000008881784197001252
但确切的价值是 0.00000000000000088817841970012523233890533447265625
我使用了power function和divison operator。
答案 0 :(得分:0)
您可以使用NumberFormat并执行以下操作:
import java.text.NumberFormat;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(0);
nf.setMaximumFractionDigits(5);
System.out.println(nf.format(VariableHere));
这会将数字设置为至少有0位小数,最多为5,然后打印出重新格式化的数字。
答案 1 :(得分:0)
非常接近this问题
BigDecimal bi1 = new BigDecimal("2").pow(50);
BigDecimal bi2 = BigDecimal.ONE;
BigDecimal bi3 = bi2.divide(bi1);
System.out.println(bi3);
提供输出8.8817841970012523233890533447265625E-16
但如果你不会避免这种表示法并获得纯数字,你可以添加
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(0);
nf.setMaximumFractionDigits(100);
System.out.println(nf.format(bi3));
它将提供准确的输出0,00000000000000088817841970012523233890533447265625