C/C++:
C/C++中没有存储大数(精度超过long型)的数据类型,而大数精度一般是少则数十位,多则几万位。一般我们称这种C/C++基本数据类型无法表示的整数为大整数。如何表示和存放大整数呢?
基本方法是:用数组或字符串存放和表示大整数。一个数组或字符串元素,存放大整数中的一位。
例如:
大数:1545485785212454510
用字符串进行大数的储存后,若进行运算,可以根据ASCII表中字符串元素对应的ASCII值减去0的ASCII值进行运算。
例如:字符串中a[0]='4',其ASCII值是52,0的ASCII值是48,用52减去48正好是数字4。
Java:
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
其构造器类型如下:
BigDecimal(int): 创建一个具有参数所指定整数值的对象。
BigDecimal(double):创建一个具有参数所指定双精度值的对象,不推荐使用。
BigDecimal(long): 创建一个具有参数所指定长整数值的对象。
BigDecimal(String): 创建一个具有参数所指定以字符串表示的数值的对象,推荐使用。