多语言展示
当前在线:460今日阅读:60今日分享:41

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

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

vc++6.0软件

2

电脑

明确概念
1

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

2

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

3

观察程序代码,a,b都被赋予整型,所以程序运行结果是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型为例,写个程序,验证下:#includeusing namespace std;int main(){   int a=2;  float b=3.5;  cout<<'a+b='<

解决问题
推荐信息