栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中关于除号(/)和模(%)你可能不知道的细节

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中关于除号(/)和模(%)你可能不知道的细节

一.除号问题
//我们先来看看整型除整型
System.out.println(10/4);
//你觉得它会等于多少? 2.5?
//我们可以尝试运行一下,你会发现结果是 2,是不是很震惊?

//我们再来看看浮点型除整型
System.out.println(10.0/4);
//你觉得这个结果又会是啥? 2?
//我们再次尝试一下可以发现,结果为 2.5,就是正常的运算结果

为什么会这样子呢?

因为在Java中,运算的结果是由运算数中范围最大的类型来决定的
那么int类型之间的相互运算只有int类型,double和int类型进行运算的话,输出就是double了

二.模/取余(%)

我们经常在进行模运算的时候分不清结果正负号的问题,我们接下来来探讨一下:

我们分别用正负号相互运算

System.out.println(10 % 3); //结果1
System.out.println(-10 % 3); //结果-1
System.out.println(10 % -3); //结果1
System.out.println(-10 % -3); //结果-1

我们可以从这些结果得出,貌似结果的正负值只与第一位数有关
事实也正是如此,结果的正负值与后面值的正负没有关系,实在分不清我们可以套用一下公式:

//公式 a % b = a - a/b * b
int i = -10 - (-10)/(-3)*-3; 
//可以多操作一下看看是不是这个结果
System.out.println("i=" + i); //结果为-1
System.out.println(-10.5 % 3); //结果-1.5
三.对于除和模的应用

1.定义一个变量保存华氏度,请求出华氏温度对应的摄氏温度

华氏度与摄氏度转换公式: 5/9*(华氏度-100)

Scanner scanner = new Scanner(System.in);

System.out.print("请输入华氏温度:");
double hua = scanner.nextDouble();

she = 5.0/9.0*(hua -100.0);
System.out.println(she);

大家可以试一试,我觉得还是挺有意思的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号