我试图找到2个双打与多个小数点的区别:
double highest = 0.01518804243008679;
double lowest = 0.01464486209421528;
System.out.println("Difference: " + (highest - lowest));
我得到的答案是正确的,但只是乘以10 000:
Difference: 5.431803358715102E-4
当所需的输出为:
Difference: 0.0005431803358
答案 0 :(得分:0)
有很多方法可以做到这一点。这是我的解决方案,您可以找到这些方法。
package example;
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Example {
public static void main(String[] args) {
double highest = 0.01518804243008679;
double lowest = 0.01464486209421528;
double answer = highest - lowest;
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(13);
System.out.println(df.format(answer));
System.out.printf("Difference: %.13f\n", (highest - lowest));
System.out.println(new BigDecimal(answer).toPlainString());
System.out.println(String.format("%.13f", answer));
}
}
输出结果为:
.0005431803359
Difference: 0.0005431803359
0.00054318033587151016983174400820644223131239414215087890625
0.0005431803359