1.取整运算符

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

int a = 10;

int b = 3;

double c= a / b;

System.out.println(c);

第一段代码的运行结果是3.0, 其中double c = 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,其中double c = (double)a / b;等价于double c= 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

示例代码:

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。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2019-08-13

java 取整符号_浅析java中的取整(/)和求余(%)相关推荐

  1. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  2. java取网页数据_浅析JAVA实现网页取内容

    有很多网站提供从其他网站提取新闻甚至是从向翻译网站取内容 由于手头做的网站需要涉及这个方面的内容,所以最近研究了一下 这里把我的一点小心得写给大家 希望大家讨论共同进步 首先我觉得这种功能的实现其实是 ...

  3. java枚举对象作用_浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...

  4. java static修饰方法_浅析Java中static修饰符

    1.概述 static关键字的中文意思是静态的,该修饰符可以修饰字段.方法.内部类.使用该关键字修饰的内容,在面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修饰的 ...

  5. java定时产生随机数_浅析Java随机数与定时器

    产生90-100的重复的随机数: public class RandomTest { public static void main(String[] args){ /* * Math.random( ...

  6. Java存储任意对象_浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...

    最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应 ...

  7. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  8. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  9. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

最新文章

  1. Pycharm问题归纳
  2. 皖西学院计算机证书,下半年皖西学院计算机等级考试报名时间
  3. 【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录
  4. BugkuCTF-MISC题一切有为法如梦幻泡影
  5. is_file()和file_exists()
  6. android adb server didn't ack
  7. 遍历QListWidget的item
  8. hive函数参考手册
  9. win7 ie9总是跳转到官方主页的解决方法
  10. mysql基本sql语句总结(一)
  11. 基于浏览器扩展程序脚本和IDM提高下载速度
  12. 硬核AI开发者大会来袭:飞桨发布开源框架2.0 RC版、生物计算平台PaddleHelix「螺旋桨」...
  13. 基于android的个人收支财务管理,基于Android的个人财务管理系统的设计与实现.doc...
  14. 引用计数与可达性分析
  15. 华为手机系统服务器在哪里,华为云服务这软件在哪?
  16. php微信调用摄像头拍视频,公众号调用摄像头录制视频
  17. python教程十一 元组
  18. C语言猜数游戏两位数
  19. 电商网站商品模型之商品详情页设计方案 - 梦亦晓 - 博客园
  20. No configuration found in the configured sources

热门文章

  1. 【读书笔记】《能力陷阱》——改变思想从行动开始
  2. 意大利语合同翻译多少钱
  3. 计算机二级ms高级应用选择题,2016计算机二级考试MsOffice高级应用练习题
  4. [Android][sensor]物理sensor bring up流程
  5. 【渝粤教育】电大中专电子线路 (2)作业 题库
  6. 演讲实录丨朱频频 让Bots无处不在
  7. 对学生任务博客的评分练习
  8. 黄仁勋没有回应,英伟达没有新品
  9. linux中选取一行的命令,使用cut选择一行中的部分内容--用Enki学Linux系列(13)
  10. C++数据结构第13课、类族结构的进化