鱼C论坛

 找回密码
 立即注册
查看: 1021|回复: 5

[已解决]太怪了,不知道怎么起标题

[复制链接]
发表于 2021-8-14 13:25:13 | 显示全部楼层 |阅读模式
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的值都没再变过了

我甚至把文件关了再打开,重新编译,都完全没有变化,这个帖能过审就好了
最佳答案
2021-8-14 13:25:14
第一个问题,你初始化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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 13:25:14 | 显示全部楼层    本楼为最佳答案   
第一个问题,你初始化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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 13:51:27 | 显示全部楼层
整数除以整数,得到的是整数
#include <stdio.h>

int main()
{
        double a = 0;
        a = (double)10174 / 29220 * 100;

        printf("%.2lf", a);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 13:56:14 | 显示全部楼层
#include <stdio.h>

int main()
{
        double a = 0;
        a = 10174 / 29220 * 100;

        printf("%.2lf", a);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 14:38:48 | 显示全部楼层
耶?强制转换没成功?按理说加(double)把运算转为浮点数计算就对了,不然赋值前都会成整除运算变成
10174/29220= 0  → 0*100 =0    。要改的话至少让程序认为这是个浮点数运算,实在不行数值改成10174.0这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-14 14:43:45 | 显示全部楼层
好奇怪,之间明明试过转换的,不行啊,现在又可以了,可能是我之前粗心打错字了吧,但是从来没报过错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表