java中的数学计算函数

Math类:
java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。 java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。 java.lang.Math类中包含E和PI两个静态常量,以及进行科学计算的类(static)方法,可以直接通过类名调用。 public static final Double E = 2.7182818284590452354 public static final Double PI = 3.14159265358979323846 public static long abs(double x):传回 x 的绝对值。X也可int long float public static long sin(double x): 传回x径度的正弦函数值 public static long cos(double x):传回x径度的余弦函数值 public static long tan(double x): 传回x径度的正切函数值 public static long asin(double x):传回x值的反正弦函数值。 public static long acos(double x):传回x值的反余弦函数值。 public static long atan(double x):传回x值的反正切函数值。 public static long atan2(double x, double y):传回极坐标(polar)的θ值 public static long floor(double x):传回不大于x的最大整数值 public static long ceil(double x):传回不小于x的最小整数值。 public static long exp(double x):传回相当于ex值 public static long log(double x):传回x的自然对数函数值 public static long max(double x,double y):传回x、y较大数 public static long min(double x,double y):传回x、y较小数 public static long pow(double x,double y):传回x的y次幂值 public static long sqrt(double x): 传回x开平方值 public static long rint(double x):传回最接近x的整数值 public static long round(double x):传回x的四舍五入值 public static long toDegrees(double angrad):传回将angrad径度转换成角度 public static long toRadians(double angdeg): 传回将angdeg角度转换成径度 public static long random():传回随机数值,产生一个0-1之间的随机数(不包括0和1)
NumberFormat类:
(public abstract class NumberFormat extends Format) 用java.text.NumberFormat类对输出的数字结果进行必要的格式化。 使用该类如下方法类实例化一个NumberFormat对象: public static final NumberFormat getInstance() 然后用该对象调用如下方法可以格式化数字number(返回字符串对象): public final String format(double number) NumberFormat类有如下常用方法: public void setMaximumFractionDigits(int newValue)//设置数的小数部分所允许的最大位数。 public void setMaximumIntegerDigits(int newValue)//设置数的整数部分所允许的最大位数。 public void setMinimumFractionDigits(int newValue)//设置数的小数部分所允许的最小位数。 public void setMinimumIntegerDigits(int newValue)//设置数的整数部分所允许的最小位数。 (更多方法及用法看JDK6API参考。)
BigInteger类、BigDecimal类:
java.math包中的BigInteger类和BigDecimal类分别提供任意精度的整数和小数运算。 两个类设计思想一样,这里只对BigInterger类稍做介绍,细节可以查看JDK6API参考。 构造方法如下: BigInteger(String val) //将 BigInteger 的十进制字符串表示形式转换为 BigInteger。 还有很多考虑周全的构造函数,建议要准备写特殊需求的BigInteger前先认真翻下JDK。 常用方法: abs() //返回其值是此BigInteger的绝对值的BigInteger。 add(BigInteger val) //返回其值为(this+val)的BigInteger。 subtract(BigInteger val) //返回其值为(this-val)的BigInteger。 multiply(BigInteger val) // 返回其值为(this*val)的BigInteger。 divide(BigInteger val) //返回其值为(this/val)的BigInteger。 remainder(BigInteger val) //返回其值为(this%val)的BigInteger。 compareTo(BigInteger val) //将此BigInteger与指定的BigInteger进行比较。返回值1、0、-1分别表示大于、等于、小于 pow(int exponent) //返回当前大数的exponent次幂。 toString() //返回此BigInteger的十进制字符串表示形式。 toString(int radix) //返回此BigInteger的给定基数(radix进制)的字符串表示形式。
补充:
(1)abs():返回某数字的绝对值.参数可以是float、double、long或int。如果是byte或short类型,那么它们会被强制转换成int类型。 (2)ceil()会找到下一个最大整数。例如参数为9.01时,返回10.0。为-0.1时,返回-0.0。返回比参数大的整数,而且都是双精度类型的。如果参数是整数,则该方法会返回这个参数的双精度型。 (3)floor()返回紧邻的最小整数。作用与ceil()正好相反,返回的是比参数小的整数,而且都是双精度型。如果参数为整数,则返回这个参数的双精度型。 (4)max()返回两个值中的最大值,只支持float double long int 不支持byte short。 (5)min()返回两个值中的最小值,只支持float double long int 不支持byte short。 (6)random()返回一个随机数,一个在0.0到1.0之间的双精度数。 (7)round()返回与某浮点数值最接近的整数值。参数可以为double和folat两种,而且支持四舍五入。例如:参数为9.01时,返回9,参数为9.5时,返回10,参数为-9.5时,返回-9。 (8)sqrt()返回某数值的平方根。如果该参数是"非数字"类型(NaN),或者小于零,则返回是NaN。
需要注意的问题,类型自动提升,其实类型提升是在运算之前完成的
加法运算
byte a = 1;
byte b = 2;
byte c = a+b;
报错,因为a+b之前会将a,b自动提升为int
正确为: byte c = (byte)(a+b);
减法运算
加法运算是一样的
乘法运算
同样遵循类型自动提升
int a = 3*5; 结果为: 15 int类型
double b = 3*5.0; 结果为: 15.0 double类型
除法运算
两个整数相除结果为整数,小数位截断
int a = 10/4; 结果为2
int b 5/7; 结果为0
如果参与运算有浮点数,则进行浮点数除
double a = 10.0/5.0; 结果为2.0
double b = 10.0/5; 结果为2.0
double c = 10.0/0; 结果为Infinity(正无穷大)
double d = -10.0/0; 结果为-Infinity(负无穷大)
double e = 0.0/0; 结果为NaN(不是数字)
求余运算分3步
第一步: 左边操作数的绝对值减去右边操作数的绝对值,得到差
第二步: 得到的差两种情况
如果差比右边操作数的绝对值大,再执行第一步
如果差比右边操作数的绝对值小,将差返回
第三步: 结果的符号为左边操作数的符号
需要注意的是: 整数进行求余时,右边操作数为0,则报错,浮点数进行求余时,右边操作数为0,则为NaN
15%4 = 3;
-15%4 = -3;
15%0 报错
15.0%0 = NaN
自增自减运算
int b = a++; 先把a的值赋给b,a再+1
int b = ++a; 先给a+1,再把a的值赋给b
关系运算符
==,!=,>,>=,<,<=
逻辑运算符
短路与: 使用&&表示,双目运算符,只要第一个操作数为false,就发生短路,后面不执行
短路或: 使用||表示,双目运算符,只要第一个操作数为true,就发生短路,后面不执行
非短路与: 使用&表示,双目运算符,如果第一个操作数为false,第二个操作数还会执行
非短路或: 使用|表示,双目运算符,如果第一个操作数为true,第二个操作数还会执行
String str = null;
if(str != null & !str.equals("")){} 报错,空指针异常,因为第二个操作数也执行了
if(str != null & !str.equals("")){} 不报错,因为第二个操作数没有执行
非运算
三目运算符
5>10?true:false;
位运算
位运算cpu直接支持的,效率最高
位运算允许对整数中单个比特进行操作,为运算会对两个操作数中对应比特执行布尔代数运算,产生结果
& 与: 二者比特都是1,则结果为1,否则为0
| 或: 二者比特都是0,则结果为0,否则为1
^ 异或: 二者比特相同,则结果为0,否则为1
~ 非: 讲被操作数按位取反
int a = 12|2; // 1100|0010 打印结果14
1100
| 0010
--------
1110
<< 左移
int a = 8<<1; //打印16
int为32bit
8的二进制位: 0000 0000 0000 0000 0000 0000 0000 1000
左移动1bit,在右边填充0: 0000 0000 0000 0000 0000 0000 0001 0000
>> 右移
int a = 8>>1; //打印4
int为32bit
8的二进制位: 0000 0000 0000 0000 0000 0000 0000 1000
右移动1bit,在右边填充0: 0000 0000 0000 0000 0000 0000 0000 0100
数学常量
Math.PI: 圆周率常量 Math.E: 自然常量 数学函数 [java] view plaincopy abs() 返回绝对值 ceil() 返回一个大于等于操作数的最近整数值 Math.ceil(8.7); //9.0 Math.ceil(9.0); //9.0 Math.ceil(9.0); //9.0 floor() 返回一个不大于操作数的最近整数值 Math.floor(8.7); //8.0 Math.floor(9.0); //8.0 Math.floor(9.0); //9.0 max() 返回两个操作数的最大一个 Math.max(1,2); min() 返回两个操作数的最小一个 Math.min(1,2); random() 返回大于等于0.0小于1.0的随机double型 round() 返回最接近操作数的整数(四舍五入) toRadians() 转换为弧度 Math.toRadians(90.0); //1.57079... sin() 返回给定角度的正弦,操作数是double型 Math.sin(Math.toRadians(90.0)); //求90度角的正弦值,返回1.0 cos() 返回给定角度的余弦,操作数是double型 Math.cos(Math.toRadians(0.0)); //求0度角的余弦值,返回1.0 tan() 返回给定角度的正切,操作数是double型 Math.tan(Math.toRadians(45.0)); //求45度角的正切值,返回1.0 sqrt() 返回给定值的平方根,,操作数是double型 Math.sqrt(4.0); //2.0 Math.sqrt(-4.0); //Nan toDegrees() 返回给定弧度的角度值 Math.toDegrees(Math.PI*0.5); //90.0
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java中的数学计算函数
# java
# 使用数学的函数总结
# Java对数器的使用讲解
# java 数学计算的具体使用
# java 对数和指数计算方式
# 都是
# 运算符
# 第一个
# 数为
# 报错
# 第二个
# 值为
# 则为
# 的是
# 转换成
# 随机数
# 还会
# 两种
# 不支持
# 四舍五入
# 浮点数
# 转换为
# 需要注意
# 开平
# 路与
相关文章:
表情包在线制作网站免费,表情包怎么弄?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
宝塔建站后网页无法访问如何解决?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
c# Task.ConfigureAwait(true) 在什么场景下是必须的
广东企业建站网站优化与SEO营销核心策略指南
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
如何通过cPanel快速搭建网站?
小程序网站制作需要准备什么资料,如何制作小程序?
英语简历制作免费网站推荐,如何将简历翻译成英文?
婚礼视频制作网站,学习*后期制作的网站有哪些?
网站制作模板下载什么软件,ppt模板免费下载网站?
用v-html解决Vue.js渲染中html标签不被解析的问题
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
孙琪峥织梦建站教程如何优化数据库安全?
如何解决VPS建站LNMP环境配置常见问题?
c# await 一个已经完成的Task会发生什么
如何在Windows环境下新建FTP站点并设置权限?
如何在西部数码注册域名并快速搭建网站?
淘宝制作网站有哪些,淘宝网官网主页?
如何在万网ECS上快速搭建专属网站?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
如何通过WDCP绑定主域名及创建子域名站点?
如何通过宝塔面板实现本地网站访问?
如何零基础开发自助建站系统?完整教程解析
如何在云指建站中生成FTP站点?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站VPS选购需注意哪些关键参数?
建站之星如何配置系统实现高效建站?
如何用VPS主机快速搭建个人网站?
如何确认建站备案号应放置的具体位置?
盐城做公司网站,江苏电子版退休证办理流程?
如何在景安云服务器上绑定域名并配置虚拟主机?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
如何选择域名并搭建高效网站?
韩国服务器如何优化跨境访问实现高效连接?
清除minerd进程的简单方法
宝塔面板如何快速创建新站点?
定制建站哪家更专业可靠?推荐榜单揭晓
如何高效搭建专业期货交易平台网站?
b2c电商网站制作流程,b2c水平综合的电商平台?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
公司网站的制作公司,企业网站制作基本流程有哪些?
网站图片在线制作软件,怎么在图片上做链接?
如何配置IIS站点权限与局域网访问?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
*请认真填写需求信息,我们会在24小时内与您取得联系。