Java中 % 与Math.floorMod() 区别详解

 更新时间:2020年8月20日 10:10  点击:2923

%为取余(rem),Math.floorMod()为取模(mod)

取余取模有什么区别呢?

对于整型数a,b来说,取模运算或者取余运算的方法都是:

1.求 整数商: c = a/b;

2.计算模或者余数: r = a - c*b.

区别是:

取余运算在计算商值向0方向舍弃小数位

取模运算在计算商值向负无穷方向舍弃小数位

比如a=4,b=-3时,a/b = -1.3333...

此时,取余c=1,取模c=-2

(%在不同语言中有不同的意义,比如Java或者c/c++中%为取余,python中%则为取模)

%(取余)运算:

1、结果的符号:结果的符号与被除数的符号相同,例:x%y 中 为 x 的符号 (结果的绝对值与x、y都为正数时相同)

2、x%y 中如果 x < y 则结果为x

3、0%x 结果为 0

4、x%0 除0错误

Math.floorMod(x,y) (取模):

1、简单记忆:与y符号相同

2、x > y:结果的绝对值与 % 运算相同

3、x < y:①符号相同 结果的绝对值为 y - x ;②符号不同 结果的绝对值与 % 运算相同

符号对照
x y x%y Math.floorMod(x,y)
- + - +
+ - + -
- - - -
+ + + +

补充知识:java.lang.Math

了解和记录一下math类的各种方法,以便以后查找

math.sin:求出sin值

math.cos:求出cos值

math.tan:求出tan值

sinθ=cosθ*tanθ

math.asin:根据sin值求角度

math.acos:根据cos值求角度

math.atan:根据tan值求角度

math.toRadians:根据角度求弧度

math.toDegree:根据弧度求角度

math.exp:E的X幂

math.log:以E为底的对数

math.log10:以10为底的对数

math.sqrt:x的二次方根

math.cbrt:x的三次方根

math.IEEEremainder:根据规定的两个参数计算剩余操作

*根据ieee 754标准。

math.ceil:返回最近的且大于的整数

math.floor:返回最近的且小于的整数

math.rint:返回最接近的整数,如果刚好居中,则取偶数

math.atan2:结果angel是一个弧度值,也可以表示相对直角三角形对角的角,其中 x 是临边边长,而 y 是对边边长,计算两点间连线的夹角.(3,3)和(5,5)和原点构成的线的夹角,math.atan2(3-5,3-5),计算出来是弧度值,再转成角度即可。

math.pow:x的y次幂

math.round:跟四舍五入很像,但是不是。小数点后等于5,取整数,正数,整数+1,负数,整数不变,大于5,整数部分+1,正负号不变,小于5,取整数

math.random:随机返回0-1之间的无符号double值

math.addExact:求int和long的和值,超过范围则抛异常

math.substractExact:求int和Long的差值,超出范围则抛异常

math.multiplyExact:求int和long的乘值,超出范围则抛异常

math.incrementExact:求int和long的+1值,超出范围则抛异常

math.decrementExact:求int和Long的-1值,超出范围则抛异常

math.negateExact:求int和long的取反值,超出范围则抛异常

math.toIntExact:求Long的int值,超出范围则抛异常

math.floorDiv:第一个参数除以第二参数,然后针对结果执行floor操作,返回小于或等于商的整数

math.floorMod: return x-floorDiv(x,y)*y;

math.abs:取绝对值

math.max:取最大值

math.min:取最小值

math.sinh:双曲正弦函数sinh(x)=(exp(x)-exp(-x))/2.0

math.cosh:双曲余弦函数cosh(x)=(exp(x)+exp(-x))/2.0

math.tanh:tanh(x)=sinh(x)/cosh(x)

以上这篇Java中 % 与Math.floorMod() 区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • mysql_connect与mysql_pconnect的区别详解

    在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解...2016-11-25
  • C#中 paint()与Onpaint()的区别

    paint是事件onpaint方法onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的:...2020-06-25
  • phpems SQL注入(cookies)分析研究

    PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,主要用于搭建模拟考试平台,支持多种题型和展现方式,是国内首款支持题冒题和自动评分与教师评分相...2016-11-25
  • IntelliJ IDEA2021.1 配置大全(超详细教程)

    这篇文章主要介绍了IntelliJ IDEA2021.1 配置大全(超详细教程),需要的朋友可以参考下...2021-04-18
  • 浅谈Spring Cloud Netflix-Ribbon灰度方案之Zuul网关灰度

    这篇文章主要介绍了浅谈Spring Cloud Netflix-Ribbon灰度方案之Zuul网关灰度,想了解Ribbon灰度的同学可以参考下...2021-04-09
  • Painter绘制红衣喝酒男水粉画效果教程

    今天小编在这里就来给Painter的这一款软件的使用者们来说一说绘制红衣喝酒男水粉画效果的教程,各位想知道具体绘制步骤的使用者,那么下面就快来跟着小编一起看一看教程...2016-09-14
  • 全身个性化!贱驴619打滚机械键盘87键评测

    电竞行业的红火带动了机械键盘的发展,不少我们熟知的老牌PC厂商都纷纷进军了电竞行业。当然了免不了一些年轻的电竞厂商。贱驴就是在这个时代诞生的,旗下最让我们熟知的就是模块化的007电竞鼠标了!其他的电竞产品也人如其名,和贱驴的名字一样非常有个性化,本次评测的是贱驴619打滚机械键盘,驴打滚这种命名也真的是醉了,废话不多说先来开箱看看!...2016-09-12
  • iPhone6怎么激活?两种苹果iPhone6激活教程图文详解

    iPhone6新机需要激活后才可以正常使用,那么对于小白用户来说,iPhone6如何激活使用呢?针对此问题,本文就为大家分别介绍Wifi无线网络激活以及iPhone6连接电脑激活这两种有效的方法,希望本文能够帮助到大家...2022-09-14
  • Ecshop提示Only variables should be passed by reference in错误

    在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25
  • C语言实现放烟花的程序

    这篇文章主要为大家详细介绍了C语言实现放烟花的程序,有音乐播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-23
  • python opencv 画外接矩形框的完整代码

    这篇文章主要介绍了python-opencv-画外接矩形框的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-04
  • Java实现经典游戏复杂迷宫

    这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
  • Photoshop制作雨中野外孤独行走的一头牛海报教程

    今天小编在这里就来给各位photoshop的这一款软件的使用者们来说下制作雨中野外孤独行走的一头牛海报的教程,各位想知道具体制作方法的使用者们,大家就快来看一看小编给...2016-09-14
  • PHP添加MongoDB扩展实例教程

    由于要使用mikoomi mongodb plugin插件,所以需要php对mongodb的扩展支持,默认通过源安装的php并没有mongodb的扩展支持,具体可以通过php -m|grep mongo 验证 。这里就结...2016-11-25
  • Painter绘制帅气卡通魔法王子漫画教程

    今天小编在这里就来给Painter的这一款软件的使用者们来说一下绘制帅气卡通魔法王子漫画的具体教程,各位想知道绘制步骤的使用者,那么下面就快来跟着小编一起看一看教程...2016-09-14
  • php身份证校验码的计算例子

    下面来给各位同学介绍一个php身份证校验码的计算例子,希望本函数代码能帮助到各位同学哦。 例子 代码如下 复制代码 public function id_ver...2016-11-25
  • C# WinForm多线程解决界面卡死问题的完美解决方案,使用BeginInvoke

    问题描述:当我们的界面需要在程序运行中不断更新数据时,当一个textbox的数据需要变化时,为了让程序执行中不出现界面卡死的现像,最好的方法就是多线程来解决一个主线程来创建界...2020-06-24
  • Illustrator鼠绘堆雪人的孩童矢量插画教程

    今天小编在这里就来给各位Illustrator的这一款软件的使用者们来说说鼠绘堆雪人的孩童矢量插画的教程,各位想知道具体绘制方法的使用者们,那么各位就快来跟着小编来看看...2016-09-14
  • 409错误是什么 http 409错误怎么解决

    409错误是什么?http 409错误怎么解决呢?不少站长在遇到这个错误代码之后都一筹莫展,本次一聚教程网为大家带来了详细的说明,快来看看吧。 409错误是什么: HTTP 40...2017-01-22