大数(BigDecimal和BigInteger)
之前说到了,浮点数由于计算机浮点表示方法会有精度丢失问题,那涉及到浮点数的情况时(如银行卡金额),该怎么样进行运算呢?
我们可以使用Java.math 包下的两个类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值,前者实现任意精度的整数运算,后者实现任意精度的浮点数运算。
使用静态valueof方法将普通数值转换为大数
对于非常大的数,可以使用带字符串参数的构造方法
由于数字类型的改变,之前的运算符无法满足大数的运算,所以要用这个两个类提供的add(),divide(),multiply(),subtract()分别对应+,/,*,-
例子,求在n个数字中抽取k个数字的概率