鱼C论坛

 找回密码
 立即注册
查看: 3811|回复: 7

请不要笑我问的问题

[复制链接]
发表于 2011-3-17 21:59:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
void main ()
{   
   float f=5.75;
   printf("(int)f=%d,f=%f\n",(int)f,f);

}

能不能告诉我为什么浮点型输出的是8位的5.750000,而不是十六位或是更高位呢?比如5.7500000000000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-17 23:48:34 | 显示全部楼层
浮点型float 在VC编译器中只占四个字节,相当于八位啊,所以那个啥、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-17 23:57:09 | 显示全部楼层
printf函数在不指定输出格式时,默认小数点后就是6位!!
你自己也可以改变小数点后的位数。。。比如。。。。。。%.12f    12位了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-18 00:16:13 | 显示全部楼层
回复 3# 风扫地
float指定12位小数后面出现的都是乱码吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-18 00:20:10 | 显示全部楼层
只能出现八位,因为float型数据在内存中分配4个字节,32bit,所以最多能表示八位,再多的都是不精确的。要提高精度可以使用double型。建议仔细观看小甲鱼的“零基础入门学习C语言”,里面讲的非常清楚。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-18 00:44:52 | 显示全部楼层
回复 4# zhangtpku


    那就是与精度有关了。。
float的精度
单精度和双精度的有效位是不同的。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-19 23:44:30 | 显示全部楼层
因为float型数据在内存中分配4个字节,32bit,所以最多能表示八位,这是上面的朋友帮我解答的,请问为什么32bit 只能表示八位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-13 18:11:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-20 01:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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