一个“错误的”例子:
我们先来看一段简单的代码:
下面这个“代码”是一个进行除法运算的代码
假设我们进行“ 3 / 2 ”的运算,结果是 1.5,但是这串代码最后的结果是1.0,这显然不是我们想要的结果。
int main()
{
int a, b;
float c;
scanf("%d %d", &a, &b);
c = a / b;
printf("%.1f", c);
}
更改之前,我想要先解释一下原理。
原理:
我们一步一步分析:“a和b都是整型”,然后我们进行输入时,输入:“3 2” 。
然后进行运算的时候运行出来的结果是“int类型”,也就是说:
这句话是重点:“算出来(运算)的东西”和“接收的东西”是“分开”的。,3 / 2 == 1.5,但是“整数运算”出来的是“1”,所以我们给“c”的时候,c接收到的数字是“1”,但是“c”是float类型,所以c现在是1.0。所以输出的是1.0 。
也就是说:整型运算的结果还是整型,这时候我们算出来的是1,而不是1,5。但是让“c”接收的是浮点型。这时候“c”接收的数字是“1”,所以“c”只能输出“1.0”。
更改:(第一种方式)
int main()
{
int a, b;
float c;
scanf("%d %d", &a, &b);
c = a * 1.0 / b;
printf("%.1f", c);
}
在这串代码中我加上了“ *1.0 ”,这个是一个很重要的改变,“ *1.0 ”让“ a * 1.0 / b ”这个式子成为了浮点型的运算。也就是说:最后输出的值是“一个浮点型的值”,再看上面的例子,这个时候再运算,运算的结果就是“1.5”了。
第二种方式:
这个是“另一个更改方式”
但是和我想要说明的东西没有什么关系,这里就放出来,不再进行解释。就当做是“一题多解”的方式吧。 (而且我感觉这个方式也不太好)。
结束语:
我也是刚刚开始学习“编程”,真的是没什么水平,这只是我很浅显的理解,要是有什么不对的地方欢迎大家进行指正!
要是可以帮助到大家那就太好了,希望大家能有所收获,谢谢大家!
标签:1.5,1.0,运算,int,代码,float,C语言,作用 From: https://blog.csdn.net/2301_80967814/article/details/137105348