JAVA大数值问题总结

来源:互联网 发布:移动云商城 源码下载 编辑:程序博客网 时间:2024/05/01 15:06

大数值问题:



如果基本的整数(如:int、long)和浮点数的精度不狗满足需求时,那么就可以用java.math包中的两个类BigInteger(任意精度的整数)和BigDecimal(任意精度的浮点数).

这两个类可以实现人一次长度数字的数值

BigInteger a = BigInteger.valueOf(100);//把100转换为大数类型的整数
使用valueOf()方法可以将普通的数值转化为大数

那么接下来,怎么用大数实现数值运算呢?

在JAVA中提供加法方法就是:

BigInteger sum = a.add(b);//c = a + b;
BigInteger ji = a.multiply(b.add(BigInteger.valueOf(2)));//ji = a * ( b + 2)


注:

和C++不同,java只提供了字符串的连接,重载了+运算符,java没有提供运算符的重载功能,也没有给java程序员在自己的类中写运算符重载的机会。


计算组合数:

c = c.multiply(BigInteger.valueOf(n-i+1).divide(BigInteger.valueOf(i)));//(n-i+1)/i
/** 描述: 有n个球,一手可以抓m个,问有多少抓取方式,n以0输入结束 思路: 应用java.math包中的BigInteger类 运用a.multiply(b)得出a*b积 */import java.math.BigInteger;import java.util.Scanner;public class Main {public static void main(String[] args){Scanner in = new Scanner(System.in);int n = 1,m;//求C(m,n)的组合数while(0!=n){n = in.nextInt();m = in.nextInt();BigInteger c = BigInteger.valueOf(1);for(int i = 1;i<=m;i++){c = c.multiply(BigInteger.valueOf(n-i+1)).divide(BigInteger.valueOf(i));}System.out.println(c);}}}


BigInteger:

//BigInteger add(BigInteger it)// 求和//BigInteger subtract(BigInteger it) //求差//BigInteger multiply(BigInteger it) //求积//BigInteger divide(BigInteger it) //求商//BigInteger mod(BigInteger it) //求模//int compareTo (BigInteger it) //用于判断两个大数的大小,该大数与另一个大数it相等,返回0,小于,返回负,大于返回正//static BigInteger.valueOf(long x)static BigInteger valueOf(long xx)//返回值 等于xx 的大整数



BigDecimal:

BigDecimal add(BigDecimal it)// 求和BigDecimal subtract(BigDecimal it) //求差BigDecimal multiply(BigDecimal it) //求积BigDecimal mod(BigDecimal it) //求模

例外:

BigDecimal divide(BigDecimal it RoundingMode mode)5.0//四舍五入想要计算必须要给出舍入方式,至于其他的舍入方式可以参考API文档static BigDecimal valueOf(long x) //返回值等于x的大实数static BigDecimal valueOf(long x,int k)//返回值为 x/(10的k次方)的大实数






0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 给微商交了定金不给退怎么办 方舟手游飞龙驯服时间不够怎么办 淘宝上买了假货找不到商家怎么办 魅蓝手机一直在开机画面怎么办 在实体店买的手机想退怎么办 淘宝买了东西发货了不想要了怎么办 快递已经发货了不想要了怎么办 锤子手机买了不到十天碎屏了怎么办 唯品会新人专享优惠卷过期了怎么办 我微信被系统说赌博登陆不起怎么办 平湖新居民积分卡怎么办办好办吗 电话卡插上去只能打紧急电话怎么办 不小心充错q币了怎么办 液相色谱柱堵了怎么办处理柱子 扣扣空间宠物消消87关怎么办 微信钱包里的钱忘记密码了怎么办 支付宝绑定银行卡要验证码怎么办 微信红包超出20万限额怎么办 微信充电信的号码话费没到账怎么办 农业银行手机银行转账转错了怎么办 微信钱包里的零钱不见了怎么办 买家说支付宝没钱要微信付钱怎么办 微信红包没绑卡密码忘了怎么办 手机微信红包密码忘了怎么办 qq账号忘了怎么办什么也没绑定 手机银行转账名字对卡号错了怎么办 手机夸行转账卡号输入错了怎么办 移动开通了20元流量卡怎么办? 联通手机充值卡网上充值话费怎么办 提现金额和实际到账不一样怎么办 二冲踏板冷车加油熄火怎么办? qq被盗绑定了别人的银行卡怎么办 如何更改微信支付密码忘记了怎么办 微信钱包没绑银行卡忘记密码怎么办 微信密码忘记了也没绑银行卡怎么办 微信支付密码忘记了没银行卡怎么办 想找回原来的k歌忘了密码怎么办 手机微信钱包支付密码忘了怎么办 微信支付账户被注销了怎么办 微信钱包密码忘了怎么办没绑银行卡 微信钱包密码忘了怎么办不用银行卡