|
10鱼币
有下面一串代码
- #include <stdio.h>
- int main()
- {
- double a = 0;
- a = 10174 / 29220 * 100;
- printf("%.2lf", a);
- return 0;
- }
复制代码
我在微软VS2019试了好久,我试过把a初始化为0去掉,把.2去掉,在10174前面添上(double),还试过用括号把10174/29220括起来,试过把100移到10174前面来,我也调试过,
在"double a = 0;"这一句的时候a的值为 -9.2559631349317831e+61
到了"a = 10174/29220*100"这里,a就变成了0,然后一直到程序结束,a的值都没再变过了
我甚至把文件关了再打开,重新编译,都完全没有变化,这个帖能过审就好了
第一个问题,你初始化a,输出结果为乱码,这个应该跟你的编译器有关。我本地测试,也在线编译器也试过了,没出现你这种类似的乱码。
第二个问题,需要强制转换一下数据类型。 - #include <stdio.h>
- int main(){
- double a = 0;
- printf("初始化a = %lf\n",a);
- a = (double)10174 / 29220 * 100;
- printf("计算后a = %.2lf\n",a);
- return 0;
- }
复制代码
输出结果为:
初始化a = 0.000000
计算后a = 34.82
|
最佳答案
查看完整内容
第一个问题,你初始化a,输出结果为乱码,这个应该跟你的编译器有关。我本地测试,也在线编译器也试过了,没出现你这种类似的乱码。
第二个问题,需要强制转换一下数据类型。
输出结果为:
初始化a = 0.000000
计算后a = 34.82
|