c语言中1.0/2是多少

 我来答
弥鸥逮成荫
2020-02-02 · TA获得超过3695个赞
知道大有可为答主
回答量:3074
采纳率:27%
帮助的人:224万
展开全部
数学上是0.5。
但在C语言中,则取决于表示和编译器等。
可以用printf验证:
printf("%.2f",
1.0/2),输出:0.50
C表达式(1.0/2),符号
/
表示除,所以(1.0/2)的值等于0.5。其中,1.0是个单精度浮点数格式的字面值常量所以它是个浮点型数据,以浮点型编码于内存;
2是个整数格式的字面值常量所以它是个整型数据,以整数型编码于内存

而C语言规定,一个混合数据类型运算表达式的运算结果的数据类型是表达式中存在的最“大”(double>float>int>char…)的那个类型。例如一个int与一个float的运算表达式的值是float的。
所以这题的表达式(1.0/2)的值将是浮点型的,因此能得到0.5

注意,0.5是表达式(1.0/2)的值,它会存于寄存器或内存。而不是(1.0/2)的值的另种类型的拷贝、或解释等:
如下面的,将不会得到想要的结果:
int
r
=
1.0/2;
printf("%f",
r);//0.
printf("%d",
1.0/2);//0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式