当前位置: 首页>资讯 >

java 核心技术-12版 卷Ⅰ- 3.9 大数 BigInteger 世界今日报

来源: 哔哩哔哩 | 时间: 2023-01-25 14:59:31 |

如果基本的整数和浮点数精度不足以满足需求,那么可以使用 java.math 包中两个很有用的类 : BigInteger和 BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BiqDecimal 实现任意精度的浮点数运算。

使用静态的 valueOf 方法可以将一个普通的数转换为大数:

BigInteger a = BigInteger.valueOf(100);


【资料图】

对于更大的数,可以使用一个带字符串参数的构造器:

BigInteger reallyBig  = new BigInteger("222232244629420445529739893461909967206666939096499764990979600") ;

另外还有一些常量:  BigInteger.ZER0、BigInteger.ONE 和 BigInteger.TEN,Java 9之后还增加了BigInteger.TWO。

警告: 对于BigDecimal 类,总是应当使用带一个字符串参数的构造器。还有一个BigDecimal(double)构造器,不过这个构造器本质上很容易产生舍入误差,例如,newBigDecimal(0.1)会得到以下数位:

01000000000000000055511151231257827021181583404541015625

遗憾的是,不能使用人们熟悉的算术运算符(+ - * /)来组合大数,而需要使用大数类中的 add 和 multiply 等方法。

BigInteger c = a.add(b); // c= a + b;

BigInteger d = c.multiply (b.add(BigInteger.valueOf(2))) ; // d = c * ( b + 2)

C++ 注释 : 与 C++ 不同,Java 不能通过编程实现运算符重载。使用 BigInteger 类的程序员无法重定义 + 和 * 运算符来提供 BigInteger 类的 add和 multiply 运算。Java语言的设计者重载了 + 运算符来完成字符串的拼接,但没有重载其他的运算符,也没有给Java 程序员提供机会在他们自己的类中重载运算符。

程序清单 3-6 是对程序清单 3-5 中彩概率程序的改进,更新为使用大数。例如,假设你

被邀请参加抽奖活动,并从 490 个可能的数中抽取 60 个,这个程序会告诉你中彩的概率是

1/716395843461995557415116222540092933411717612789263493493351013459481104668848。祝你好运!

在程序清单3 - 5 中,会计算一下语句

lotteryOdds = lotteryOdds  * ( n - i + 1) ;

如果对 lotteryOdds  和 n 使用大数,则相应语句为

lotteryOdds  = lotteryOdds . multiply ( n.subtract ( BigInteger.valueOf(i -1)).divide(BigInteger.valueOf(i)) ;

程序清单 3 -6 BigIntegerTest.java

BigInteger API

java.math.BigInteger

BigInteger add(BigInteger other)   // 加

BigInteger subtract(BigInteger other) // 减

BigInteger multiply(BigInteger other) // 乘

BigInteger divide(BigInteger other) // 除

BigInteger mod(BigInteger other) // 模

BigInteger sqrt()  // 平方根 . since JDK 9

int compareTo(BigInteger other)  // 相等则返回0 , > other 则返回正数,< other 返回负数

static BigInteger valueOf(long x) 返回等于x的大数

java.math.BigDecimal 

BigDecimal (String digits) // 用给定数构造一个大数实例

BigDecimal add(BigDecimal other) 

BigDecimal subtract(BigDecimal other) 

BigDecimal multiply(BigDecimal other) 

BigDecimal divide(BigDecimal other) 如果商是一个无限小数,则会抛出异常

BigDecimal divide(BigDecimal other , RoundingMode mode)  since jdk5. 如果商是一个无限小数,使用 mode 来指定舍入方式,比如四舍五入。

int compareTo(BigDecimal other)  相等则返回0 , > other 则返回正数,< other 返回负数

关键词: DIVIDE Java java程序员 DOUBLE 抽奖活动 祝你好运 MODE

 

热文推荐

java 核心技术-12版 卷Ⅰ- 3.9 大数 BigInteger 世界今日报

如果基本的整数和浮点数精度不足以满足需求,那么可以使用java math包中两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长

2023-01-25

每日快报!苏仙岭门前焕然一新,喜迎四方游客

苏仙岭门前焕然一新,喜迎四方游客

2023-01-25

全球视讯!圣诞节节奏_圣诞节节目单

1、1、泡泡糖主持人召集若干人上台,人数最好是奇数,当大家准备好时,主持人喊“泡泡糖”大家要回应“粘什么”,主持人随机想到身体的某个部

2023-01-24

天选福星 六福德莱厄斯 实时焦点

D牌和拉人口时机取决于阵容主坦和主C费用1、主1费:D出三星前不拉人口,2-7打完野怪后卡50或40利息D三星1费2、主2费:6人口卡50利息D三星2费3

2023-01-24

用心用情服务 陵水青年志愿者温暖旅客回家路_世界最资讯

为进一步弘扬“奉献、友爱、互助、进步”的志愿服务精神,陵水组织团属青年社会组织、乡镇团委、青年志愿者开展2023年“暖冬

2023-01-24

环球微头条丨北市庙会感受浓浓年味儿

央广网沈阳1月23日消息(记者吕蒙)“上次逛庙会还是三年前,只要北市庙会开,我们一家就肯定要来逛一逛,要不好象过年少了点儿啥……”跟许多

2023-01-24

《指尖星河》番外-五毒之行_全球关注

番外——五毒之行此篇番外发生在姊妹篇之后,姜逸是姜熹的外甥。偌大的白家院子里,三岁的星儿正在满院子的追着蝴蝶,嘴中还啊啊啊的叫着,脸

2023-01-23

结婚当天晚上来姨妈应该怎么做_如何避免结婚第一天来月经-热门

1、  一、结婚当天晚上来姨妈应该怎么做2、  首先要清楚,结婚当天来姨妈并没有不吉利的说法,是正常的生理反应,不过还是

2023-01-23

中超新郑智诞生了!39岁前国足中场强势加盟升班马,完成涅槃!

大家都知道,目前中国足球最大的问题就是人才断档、青黄不接。而我们人才断档的主要原因大家一般都会觉得就是我们的青训没能培养出更多的人才

2023-01-23

热门:金沙璀璨古蜀现

【红红火火闹新春】本报成都1月21日电农历腊月二十九,暖阳和煦,蜡梅绽放,精神矍铄的“老成都”潘夫文专程来到金沙遗址博物

2023-01-22

“周末工程师”忙

“周末工程师”忙

2023-01-22

文献综述范文10000字 文献综述范文5000字

今天来聊聊关于文献综述范文10000字,文献综述范文5000字的文章,现在就为大家来简单介绍下文献综述范文10000字,文献综述范文5000字,希望

2023-01-22

湛江经济债务委托律师打官司收多少_今日精选

1、律师的收费标准各地,每个人等不太一样,提供法律咨询一般收费200-2000元不等。2、律师收费的方式及收取多少律师费用都是由律师与委托人在

2023-01-21

出售房子优美句子(汇总170句)-每日报道

出售房子优美句子汇总123句1 秋姑娘一手拿着篮子,另一只手在撒着金黄的树叶,树叶满天飞舞,像个顽皮的孩子,在耍杂技。2 款款相邀,即往开开!

2023-01-21

联想的企业文化是什么_联想的企业文化是什么?

大家好,小设来为大家解答以上问题。联想的企业文化是什么,联想的企业文化是什么?很多人还不知道,现在让我们一起来看看吧!1、【概述】

2023-01-21

每日聚焦:新疆和田地区文化旅游宣传推介会在天津启幕

根据新疆和田地区文化旅游推介会整体工作安排部署,结合“和田优品”年货节活动,在天津市北辰区团仓超市“和田优品”旗舰店、和平区滨江道疆

2023-01-20

“五星”支部创建!新城街道:挥毫泼墨写春联 情暖居民送祝福

为深入学习宣传贯彻党的二十大精神,进一步丰富群众文化生活,弘扬中华优秀传统文化,营造欢乐喜庆、书画飘香的节日氛围。1月19日上午,阴历二

2023-01-20

成都交投新能源产业公司招聘设备管理岗_速看

职位:设备管理岗地区:四川省 成都市 武侯区单位:成都交投新能源产业发展有限公司报名时间:2023 2 8截止报名入口:点击进入详细地点剑南大

2023-01-20

聚焦:新春,与博物馆来一场“云”相聚

在闽江河口湿地公园湿地博物馆里,张潮巨(左)和博物馆讲解员刘文婧一起进行直播,向网友宣传鸟类保护知识。新华社记者魏培全摄妙趣横生的红

2023-01-20

爱情在线测试_免费测试另一半长相|焦点

一、你看到远处有一个不明的物体,在你的内心直觉中,你觉得那个会是什么东西?1、A、受伤的小鸟2、B、丢落的钱包3、C、丢

2023-01-20