c++中除法的问题

像1/2,运行时默认得出0,我想得出0.5怎么弄
2024-11-08 00:34:18
推荐回答(5个)
回答1:

1、将1或2两个数字中的任何一个改为浮点型,如果两个操作数中有一个为浮点型,则结果为0.5。如下所示

int a = 1.0;
int b = 2;

则a/b的值为0.5。

2、强制转换(float)或者(double),其结果为0.5。如下所示

int a = 5;
int b = 2;

则a/b的值为2(整除),而用(double)a/b的值则为2.5。

拓展资料:

1、C++中的算术运算符包括基本的算术运算符和自增、自减运算符。由算术运算符、操作数和括号构成的表达式称为算术表达式。

2、基本算术运算符有:+(加)、-(减或负号)、*(乘)、/(除)、%(取余)。其中“-”作为负号时为一元运算符,其余都为二元运算符。这些基本算术运算符的意义与数学中相应符号的意义是一致的。它们之间的相对优先级关系与数学中的也是一致的,即先乘除、后加减,同级运算自左向右进行。使用算术运算符要注意以下几点:

(1)“%”是取余运算,只能用于整型操作数。表达式a%b的结果为a/b的余数。 “%”的优先级与“/”相同。

(2)当“/”用于两整型操作数相除时,其结果取商的整数部分,小数部分被自动舍弃。因此,表达式1/2的结果为0,这一点需要特别注意。

(3)C++中的“++” (自增)、 “--” (自减)运算符是使用方便且效率很高的两个运算符,它们都是一元运算符。这两个运算符都有前置和后置两种使用形式.

参考资料:百度百科-c++

回答2:

用个强制类型转换(double)。

除法是基本运算,规则如下,如果两个操作数中有一个为浮点型,则结果为浮点,如果两个均为整型,则为整除。当整型取浮点时就要强制转换(float)或者(double),例如:int a = 5、int b = 2,则a/b的值为2(整除),而用(double)a/b的值则为2.5,用个强制类型转换(double),1/2就可得到0.5了。

拓展资料:

当操作数的类型不同,而且不属于基本数据类型时,经常需要将操作数转化为所需要的类型,这个过程即为强制类型转换。强制类型转换具有两种形式:显式强制转换和隐式强制类型转换。

参考资料来源:强制类型转换_百度百科

回答3:

除法是基本运算,规则如下,如果两个操作数中有一个为浮点型,则结果为浮点,如果两个均为整型,则为整除。当整型取浮点时就要强制转换(float)或者(double)
例如:

int a = 5;
int b = 2;

则a/b的值为2(整除),而用(double)a/b的值则为2.5,用个强制类型转换(double)就行了。

回答4:

1、定义一个浮点型变量
2、1除以2中必须有一个是不数的,如可以这样1.0/2这样就能得到结果了

回答5:

#include
int main(void) {
float a = 1;
float b = 2;
float c = a / b;
printf("%2.1f", c);
return 0;
}
/*运行结果:0.5*/