鱼C论坛

 找回密码
 立即注册
查看: 3436|回复: 6

大家来看看 我这不是很懂

[复制链接]
发表于 2013-9-5 23:51:59 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>

void main()
{
        printf("%f\n", 1.0 / 3 * 3);
    printf("%f\n", 3 / 2);
        printf("%f\n", 1 / 3 * 3);
}
VC++6.0上的显示结果:1.000000
                                        0.000000
                                       0.000000
                                       Press any key to continue
printf("%f\n", 3 / 2);就是这句不太懂  这句的显示结果为什么是0啊 就算是舍去小数部分也应该是1啊

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

使用道具 举报

发表于 2013-9-6 00:24:13 | 显示全部楼层
数据在内存中的存储结构不一样,应该是这样~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-6 05:17:43 | 显示全部楼层
C语言的整数和实数在内存中的存储方式不一样,整数1以实数要实数的形式输出需要转换一下数据类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-6 21:35:23 | 显示全部楼层
我知道是怎么回事了  虽然不知道你们说的对不对  但是我还是要谢谢热心的你们     原来是不同类型的数值不能进行运算   要强行转换成一个类型的才能正常输出结果。:loveliness::loveliness::loveliness::loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-7 00:37:01 | 显示全部楼层
你能懂了就好,我帮你设为己经解决。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-3 03:44:51 | 显示全部楼层
还是没怎么懂你们说的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-15 12:55:34 | 显示全部楼层
printf("%f\n", 3 / 2);
改为printf("%f\n", 3.0 / 2);就行了
在计算机内部3/2结果是先用0(舍弃小数位)保存,然后在转为F型,结果就还是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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