广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 计算机教程 > 正文

Java大数值转换

作者:adminjiang发布时间:2021-07-06分类:计算机教程浏览:683


导读:在java语言中,包括了很多种java数据类型,相信大家对这些基础知识并不陌生,但是有时候这些数据类型的精度不能满足要求时,就需要用更大或者精度更高的类型,这时候就需要使用到大数值...

在java语言中,包括了很多种java数据类型,相信大家对这些基础知识并不陌生,但是有时候这些数据类型的精度不能满足要求时,就需要用更大或者精度更高的类型,这时候就需要使用到大数值。那么大数值是什么?Java大数值转换又是怎样进行的?这篇文章给你答案,一起来学习下面的内容吧!

Java基本数据类型包括四大类八种,那么什么是java大数值呢?大数值就是用来表示“大”的数值,在理论上,大在任意长度和任意精度上,想要多大,就能有多大。这是对于java零基础的新手朋友们学习java大数值转换必须先要知道了解的基本概念。

如果基本的整数和浮点数精度不能满足需求,就可以使用java.math包中的两个很有用的类:Biglnteger和BigDecimal。这两个类可以处理任意长度的数值。BigInteger类实现了任意精度的整数运算,Big Decimal实现了任意精度的浮点数运算。

java大数值转换的方法是什么呢?使用静态的valueOf方法可以把普通的数值转换为大数值:

Biglnteger a= Biglnteger.value0f(100);

可惜的是,不能使用人们熟悉的算术运算符(如+和*)处理大数值,而需要使用大数值类中的add和multiply方法。

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

Biglnteger d = c.multiply(b.add(Biglnteger.value0f(2))); //d = c*(b + 2)

与C++不同,java没有提供运算符重载功能,程序员无法重定义+和*运算符,使其应用于Biglnteger类的add和multiply运算。Java语言的设计者确实为字符串的连接重载了+的运算符,但没有重载其他的运算符,也没有给java程序员自己重载运算符的权利。

这是一个中奖概率程序:


下面对中奖概率程序加以改进——大数值转换,使其可以采用大数值进行计算:


假设你被邀请参加抽奖活动,并从490个可能的数值中抽取60个,那么这个程序会得出中奖概率是716 395 843 461 995 557 415 116 222 540 092 933 411 717 612 789 263 493 493 351 013 459 481 104 668 848次中1次。

在第一个未修改的中奖程序中,用于计算的语句是:

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

如果大数值转换后,使用大数值,相应的语句为:

lotteryOdds=lotteryOdds.multiply(Biglnteger.valueOf(n-i+1) ).divide(Biglnteger.valueOf(i));

广州北大青鸟依托北京大学雄厚资源,是北大青鸟华南地区就业示范校区,学校提供学历+技能+就业服务,主要开设热门课程java培训,UI设计培训,PHP培训,Web前端培训,软件开发编程培训等全程项目实战,免费就业推荐等,详情请点击右边的咨讯框咨询在线的老师,同时还可以获取免费的试听课程,欢迎咨询哦!!!



计算机教程排行
标签列表
网站分类
文章归档
最近发表