千锋扣丁学堂Java培训之取整(/)和求余(%)详解

2019-08-14 15:23:02 3069浏览

今天千锋扣丁学堂Java培训老师给大家分享一篇关于取整(/)和求余(%)的详细介绍,文中通过示例代码介绍的非常详细,下面我们一起来看一下吧。



1.取整运算符

取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码:

int a = 10;
int b = 3;
double c= a / b;
System.out.println(c);

第一段代码的运行结果是3.0,其中doublec=a/b;//c=(10/3)=(double)3=3.0,这里面涉及到一个低精度到高精度的隐式装换。

int a = 10;
int b = 3;
double c= (double)a / b;
System.out.println(c);

第二段代码的运行结果是3.3333333333333335,其中doublec=(double)a/b;等价于doublec=10.0/3.0;

减乘除计算,会先统一操作数的精度,其规则是先统一成精度高的数。

double型/int型、int型/double型,最后都转成double型/double型。

2.求余运算符

取余运算符是%是一个双目运算符,它的操作数通常是正整数也可以是负数甚至是浮点数,如果负数参与此运算,则结果的正负取决于前面一个数是整数还是负数。

对于整数,java的取余运算规则如下

a%b=a-(a/b)*b 
5%3=5-(5/3)*3=2
5%-3=5-(5/-3)*-3=2
-5%3=-5-(-5/3)*3=-2
-5%-3=-5-(-5/-3)*-3=-2

如果操作数中有浮点数则采用的规则为

a%b=a-(b*q),这里q=int(a/b) 
5.2%3.1=5.2-1*3.1=2.1
5.2%-3.1=5.2-(-1)*(-3.1)=2.1
-5.2%3.1=-5.1-(-1)*3.1=-2.1
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1

-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1

示例代码:

public class Division_remainder {
 public static void main(String[] args) {
  int a = 13 / 5;
  int b = 13 % 5;
  int c = 5 / 13;
  int d = 5 % 13;
  int e = 13 / -5;
  int f = -13 / 5;
  int h = -13 % 5;
  int j = 13 % -5;
  System.out.println(a + "," + b);
  System.out.println(c + "," + d);
  System.out.println(e + "," + f);
  System.out.println(h + "," + j);
 }

结果为:

2,3 
0,5 
-2,-2 
-3,3

再来一个一个分析:

a=13/5,a=2,其实就是数学上的13/5,结果为2。

b=13%5,b=3,这也是数学上的运算,得出余数为3。

c=5/13,c=0,因为被除数小于除数,结果可以看成0.x,但是int类型是整数类型,所以结果只为0。

d=5%13,d=5,数学上规定:如果被除数比除数小,商是0,余数就是被除数本身。

e和f不用说了,结果都为-2。

但是h和j怎么是一个-3一个3呢,因为取余运算的符号是根据第一个运算数决定的,-13%5结果是-3,而13%-5结果则是3。

以上就是关于千锋扣丁学堂Java培训之取整(/)和求余(%)的全部内容,希望对大家的学习有所帮助,想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询。想要学好Java开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的Java学习路线图辅助学员学习,此外还有与时俱进的Java课程体系和Java视频教程供大家学习,想要学好Java开发技术的小伙伴快快行动吧。扣丁学堂Java技术交流群:850353792。


                          JavaEE/微服务/源码解析/分布式/企业级架构【VIP体验课】


     【关注微信公众号获取更多学习资料】        【扫码进入JavaEE/微服务VIP免费公开课】  



查看更多关于“Java开发资讯”的相关文章>>

标签: Java培训 Java视频教程 Java多线程 Java面试题 Java学习视频 springBoot项目

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号