java 取整符号_浅析java中的取整(/)和求余(%)
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中的取整(/)和求余(%)相关推荐
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
- java取网页数据_浅析JAVA实现网页取内容
有很多网站提供从其他网站提取新闻甚至是从向翻译网站取内容 由于手头做的网站需要涉及这个方面的内容,所以最近研究了一下 这里把我的一点小心得写给大家 希望大家讨论共同进步 首先我觉得这种功能的实现其实是 ...
- java枚举对象作用_浅析Java编程中枚举类型的定义与使用
定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...
- java static修饰方法_浅析Java中static修饰符
1.概述 static关键字的中文意思是静态的,该修饰符可以修饰字段.方法.内部类.使用该关键字修饰的内容,在面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修饰的 ...
- java定时产生随机数_浅析Java随机数与定时器
产生90-100的重复的随机数: public class RandomTest { public static void main(String[] args){ /* * Math.random( ...
- Java存储任意对象_浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...
最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应 ...
- java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at
[http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java多线程同步与死锁_浅析Java多线程中的同步和死锁
Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...
最新文章
- Pycharm问题归纳
- 皖西学院计算机证书,下半年皖西学院计算机等级考试报名时间
- 【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录
- BugkuCTF-MISC题一切有为法如梦幻泡影
- is_file()和file_exists()
- android adb server didn't ack
- 遍历QListWidget的item
- hive函数参考手册
- win7 ie9总是跳转到官方主页的解决方法
- mysql基本sql语句总结(一)
- 基于浏览器扩展程序脚本和IDM提高下载速度
- 硬核AI开发者大会来袭:飞桨发布开源框架2.0 RC版、生物计算平台PaddleHelix「螺旋桨」...
- 基于android的个人收支财务管理,基于Android的个人财务管理系统的设计与实现.doc...
- 引用计数与可达性分析
- 华为手机系统服务器在哪里,华为云服务这软件在哪?
- php微信调用摄像头拍视频,公众号调用摄像头录制视频
- python教程十一 元组
- C语言猜数游戏两位数
- 电商网站商品模型之商品详情页设计方案 - 梦亦晓 - 博客园
- No configuration found in the configured sources
热门文章
- 【读书笔记】《能力陷阱》——改变思想从行动开始
- 意大利语合同翻译多少钱
- 计算机二级ms高级应用选择题,2016计算机二级考试MsOffice高级应用练习题
- [Android][sensor]物理sensor bring up流程
- 【渝粤教育】电大中专电子线路 (2)作业 题库
- 演讲实录丨朱频频 让Bots无处不在
- 对学生任务博客的评分练习
- 黄仁勋没有回应,英伟达没有新品
- linux中选取一行的命令,使用cut选择一行中的部分内容--用Enki学Linux系列(13)
- C++数据结构第13课、类族结构的进化