我对 Java 还很陌生。我现在正在学习数值计算。如何对一个非常小的数和一个非常大的数进行加法和乘法,例如 $10^{-20}$ 阶和 $10^{20}$ 阶的任意精度。
最佳答案
看看BigDecimal
类(class)。来自 Javadoc:
Immutable, arbitrary-precision signed decimal numbers.
和:
The BigDecimal class gives its user complete control over rounding behavior.
举个例子:
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal big = new BigDecimal("10e20");
BigDecimal small = new BigDecimal("10e-20");
BigDecimal ans = big.add(small);
System.err.println("Answer: " + ans);
}
}
运行给出以下结果:
$ java Main
Answer: 1000000000000000000000.00000000000000000010
关于java - 如何将一个非常小的数字和一个非常大的数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31393584/