Java运算符概要与数学函数
运算符概要
- 在Java中,使用算术运算符+,-,*,/表示加减乘除运算,当参与/的运算的两个操作数都是整数时,表示整数除法,否则,表示浮点除法.整数的求余操作(有时称为取模),用%表示,例如,
15/2,15%2,15.0/2. - 需要注意的是,整数被0除将产生一个异常,而浮点数被0除会得到无穷大或NaN结果.
数学函数
- 在Math类中,包含各种各样的数学函数,在编写不同类别的程序时,可能需要的函数也不同.
- 要想计算一个数值的平方根,可以使用sqrt方法
double x = 4;
double y = Math.sqrt(x);
System.out.println(y); // 2
- 在Java中,没有幂运算,因此需要借助于Math类的pow方法,语句
double y = Math.pow(x,a);将y的值设置为x的a次幂.pow方法有两个double类型的参数,其返回结果也是double类型. - floorMod方法的存在是解决一个长期存在的有关整数余数的问题,考虑表达式n
%2,如果n为偶数,这个表达式为0,如果n为奇数,表达式则为1,当然,除非n是负数.如果n为负,这个表达式则为-1,但是,欧几里得规则中描述:余数总是要大于等于0.因为我们要归一化一个的数,因此采用floorMod方法,该方法总会得到大于0的数.例如:floorMod(position+adjustment,12),产生0~11之间的数.但是对于负除数,floorMod会得到负数结果,不过这种情况在实际中很少出现. - Math类提供了一系列的三角函数
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
- 还有指数以及它的反函数-自然对数以及以10为底的对数
Math.exp
Math.log
Math.log10
- 最后Java还提供了表示π和e常量的近似值
Math.pi
Math.E
数值类型之间的转换
隐式类型转换
- 经常需要将一种数值类型转换为另一种数值类型.

- 实心箭头表示无信息丢失的转换,虚箭头表示可能有精度损失的转换.
- 当使用两个数值进行二元操作时,例如(n+f,n是整数,f是浮点数),先要将操作数转化为同一类型,然后进行计算.
- 如果两个操作数有一个是double类型,另一个操作数就转换为double类型.
- 否则,如果一个操作数是float类型,另一个操作数会转换为float类型.
- 否则,如果一个操作数是long类型,另一个会转换为long类型.
- 否则,两个操作数都会转化为int类型.
强制类型转换
- 在必要的时候,需要将double类型转换为int类型,在Java中允许进行这种数值之间的类型转换,当然有可能丢失一些信息.在这种情况下,需要通过强制类型转换进行实现,强制类型转换的语法是在圆括号中给出想要转换的类型,后面紧跟的是待转换的变量名.例如
double x=9.997;
int nx=(int)x;
这时,变量nx的值为9,强制类型转换通过截断小数部分将浮点值转换为整型.
- 如果对浮点数进行舍入计算,以便得到最接近的整数.那就使用Math.round方法.
double x=9.997;
int nx=(int)Math.round(x);
这时,nx的值为10,当调用round函数时,仍然需要进行强制类型转换,其原因是round方法返回的是long类型,由于存在信息丢失的可能性,所以只能采用显式的强制类型转换才能将long转换为int.
Java运算符概要与数学函数的更多相关文章
- java===java基础学习(2)---运算符,三元操作符,数学函数
主要介绍运算符,和数学函数以及三元运算符: package testbotoo; public class test1 { public static void main(String[] args) ...
- Java开发笔记(十一)常见的数学函数
前面介绍了Java编程的四则运算,虽然提供了基础的加减乘除符号,但是数学上还有其它运算符号,包括四舍五入用到的约等号≍.求绝对值的“| |”.开平方的“√ ̄”,这些运算符形态各异,而且并非ASCII码 ...
- Java语言程序设计(基础篇) 第四章 数学函数、字符和字符串
第四章 数学函数.字符和字符串 4.2 常用数学函数 方法分三类:三角函数方法(trigonometric method).指数函数方法(exponent method)和服务方法(service m ...
- java的数学函数总结
java的数学函数都放在java.lang这个包中,并且这些函数的方法在类Math中是作为static方法出现的,所以要引用一个特定的函数,只需将类Math和一个圆点写在要使用的方法前就好.如方法sq ...
- java笔记 -- 数学函数与常量
Math类中, 包含了各种数学函数 不用在数学方法名和常量名前添加前缀Math., 只要在源文件的顶部加上这行代码: import static java.lang.Math.*; (静态导入) 例: ...
- java基础基础总结----- 关键字、标识符、注释、常量和变量、运算符、语句、函数、数组(三)
Java语言基础组成:关键字.标识符.注释.常量和变量.运算符.语句.函数.数组 一.标识符 标识符是在程序中自定义的一些名称,由大小写字母[a-zA-Z],数字[0-9],下划线[ _ ],特殊字符 ...
- Java数学函数Math类
Java数学函数Math类常用: Math.abs(12.3); //12.3 返回这个数的绝对值 Math.abs(-12.3); //12.3 Math.copySign(1.23, -12.3) ...
- java数学函数Math类中常用的方法
Math类提供了常用的一些数学函数,如:三角函数.对数.指数等.一个数学公式如果想用代码表示,则可以将其拆分然后套用Math类下的方法即可. Math.abs(12.3); ...
- .net表达式计算器(中缀表达式转后缀表达式,支持20多个数学函数,支持函数嵌套)
最近在网上查了一下表达工计算器的类库,发现Java版本的有一个比较成熟的叫W3EVal,好像是一个IBM工程师写的,.net就很少了(可能是我了解不够多),但投机取巧的实现思路有很多,比如: (1)将 ...
随机推荐
- [小专题]另一种字符串匹配的思路——Shift-And算法
吐槽:前两天打组队赛遇到一个字符串的题考了这个(见:http://acm.hdu.edu.cn/showproblem.php?pid=5972 ) 当时写了个KMP瞎搞然后TLE了(害),赛后去查了 ...
- Promise对象,究竟为何物?
Promise对象 一.什么是Promise? Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来. Promise避免了多级异步操作的回 ...
- 精尽Spring MVC源码分析 - HandlerExceptionResolver 组件
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- redis源码学习之lua执行原理
聊聊redis执行lua原理 从一次面试场景说起 "看你简历上写的精通redis" "额,还可以啦" "那你说说redis执行lua脚本的原理&q ...
- 用Python实现童年小游戏贪吃蛇
贪吃蛇作为一款经典小游戏,早在 1976 年就面世了,我最早接触它还是在家长的诺基亚手机中.
- 前端技术VUE 的前世今生从PC 走向移动
一.Vue的前世 Vue 框架诞生于2014年,他的作者为中国人–尤雨溪(江苏无锡人).Vue用于构建交互式的Web界面的库,是一个构建数据驱动的Web界面渐进式框架,该框架遵循CMD规范,并且提供的 ...
- 一步步教你:如何用Qemu来模拟ARM系统
这是道哥的第011篇原创 目录 前言 为什么需要ARM模拟系统 应用程序的开发 系统开发(BSP) Qemu是什么? Qemu的两种模式 Qemu 能做什么?或者说适合做什么? 在 Ubuntu16. ...
- sql语句查询,limit与order by 同时出现,应该order by在前面
eg:select orderid,status,createtime from orders where appid = :appId and userid = :userId order by c ...
- sendfile“零拷贝”和mmap内存映射
在学习sendfille之前,我们先来了解一下浏览器访问页面时,后台服务器的大致工作流程. 下图是从用户访问某个页面到页面的显示这几秒钟的时间当中,在后台的整个工作过程. 如上图,黑色箭头所示的过程, ...
- HTTP 常用状态码200 301 302 403 500
200(OK):成功处理了请求. 301 redirect: 301 代表永久性转移(Permanently Moved) //助记 1 永恒,如果你记住了这一条就算这篇博客没白写.302 redir ...