c++中2/5等于0,怎么办哪错了

 时间:2024-10-14 05:50:36

c++程序运行中,2/5=0,这是为什么?出现了什么问题,小编在这里带大家深度了解下这个问题,怎么解决这个问题。用提前设置类型,和强制类型转换解决问题。

工具/原料

vc++6.0软件

电脑

明确概念

1、首先大家要明确的一个概念就是:“整数除法的结果是整数,小数部分被截取”

2、分析“2/5”其结果是0.04,但是因为“整数除法结果是整数,小数部分被截取”所以,计算机运行程序后结果是0。

3、观察程序代码,a,b都被赋予整型,所以程序运行结果是0。

c++中2/5等于0,怎么办哪错了c++中2/5等于0,怎么办哪错了

4、学习下强制类型转换的语句:static_cast<类型名>(变量名)

5、在这里给大家普及下类型转换的一些规则:1.在进行二元运算的时候,若操作数是longdouble型,则将另一个转换为longdouble型2.若操作数是double型,则将另一个操作数转换为double型(所以对于问题的解决我们只需要将a,b其中一个转换为double型就行了)3.若操作数是float型,则将另一个操作数转换为float型。4.若操作数是long型,则将另一个操作数转换为long型。5.若操作数是unsignedlong型,则将另一个操作数转换为unsignedlong型。6.若操作数是unsignedint型,则将另一个操作数转换为unsignedint型。7.如果不是上述的三种情况,则两个操作数都转换成int型。

6、这里小编以float型为例,写个程序,验证下:#include<iostream>using namespace std;int main(){ int a=2; float b=3.5; cout<<"a+b="<<a+b<<endl; return 0;}因为 b是float型,所以a自动转换成float型,所以a+b结果也是float型。

c++中2/5等于0,怎么办哪错了

解决问题

1、一种方法就是将a或者b中其中一个直接赋予非整型的类型。#include<iostream>using namespace std;int main(){ int a=2;double b=5.0; cout<<"2/5="<<a/b<<endl; return 0;}

c++中2/5等于0,怎么办哪错了

2、另一种方法就是强制类型转换。强制将整型数据转换成非整型。当然转化a,b其中任何一个就行了。代码如下:#include<iostream>using namespace std;int main(){int a=2,b=5;cout<<"2/5="<<static_cast<double>(a)/b<<endl;return 0;}

c++中2/5等于0,怎么办哪错了

3、强制类型转换,可以将int型转化成double型,也可以将double转换成int型。等等各种数据类型之间的转换。

  • 雪人读书卡怎么做
  • 六月的天气怎么形容
  • 什么是奇妙的感觉
  • 教你怎么学小学应用题,小学应用题怎么做。
  • 能天人合一的是什么人
  • 热门搜索
    电动车品牌大全 景点大全 槐角丸治痔疮怎么样 剪贴板怎么打开 泡妞大全 电音基调歌曲大全 百雀羚的护肤品怎么样 脚趾甲长肉里怎么办 泡菜的做法大全家常 金税盘怎么抄税