搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ float的最大支持不是7位小数么!为什么会出现6位小数?
标题:
float的最大支持不是7位小数么!为什么会出现6位小数?
只看楼主
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
11
楼
得分:0
嗯,是我理解的意思。下面的程序就说明了一切。
#include <stdio.h>
int main(void)
{
float a=123456.12345678;
printf("%f\n",a);
return 0;
}
2008-12-12 17:42
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
12
楼
得分:0
又测试了一下。
#include <stdio.h>
int main(void)
{
float a=0.123456789;
printf("%f\n",a);
return 0;
}
2008-12-12 17:43
forever74
来 自:CC
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册:2007-12-27
第
13
楼
得分:0
是啊
float类型的计算结果,7位以内的是近似值,8位以外的部分是垃圾值。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-12-12 17:47
StarWing83
来 自:仙女座大星云
等 级:
贵宾
威 望:
19
帖 子:3951
专家分:748
注 册:2007-11-16
第
14
楼
得分:0
这么说精度还是蛮小的……
专心编程………
飞燕算法初级群:3996098
我的Blog
2008-12-12 17:49
forever74
来 自:CC
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册:2007-12-27
第
15
楼
得分:0
所以所有的工科数值计算都至少double
甚至80位和128位的浮点,很少用32位浮点
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-12-12 17:54
老刘
等 级:
新手上路
帖 子:30
专家分:4
注 册:2008-9-25
第
16
楼
得分:0
明白了,这么多老师教,在不会也真对不起各位前辈了!我现在总结下我的理解:所谓7位有效数,也可以叫做7位精度,就是数能够精确到7位!如:PI==3.1415926!精度为7位吧,如果圆周率继续往后算就算是超出了这个7位:3.1415926XXXXXXXXXXX!X都是垃圾!而FLOAT单精度浮点最支持的就是这个7位的有效数,和我们所算出来的小数位是两个毫无关系的概念?不知道各位老师能否赞同?
另外:希望74兄能给在下留个联系方式!非常荣幸!
2008-12-12 18:01
守鹤
来 自:山東臨沂
等 级:
贵宾
威 望:
12
帖 子:337
专家分:0
注 册:2008-6-20
第
17
楼
得分:0
这些与数值在计算机中的存储有关,均以二进制数表示,float占用4个字节,double占用8字节(一个字节8位)
对于float型的,(用32位表死)最高位表示符号,紧接着的8位表示整数值,后面的位数则表示小数部分
用位数的权值 * (该位的位值)= 数值(十进制)
多少个日日夜夜想起你,只希望有缘再次相见
2008-12-12 21:04
守鹤
来 自:山東臨沂
等 级:
贵宾
威 望:
12
帖 子:337
专家分:0
注 册:2008-6-20
第
18
楼
得分:0
以下是引用
forever74
在2008-12-12 17:54的发言:
所以所有的工科数值计算都至少double
甚至80位和128位的浮点,很少用32位浮点
数据所占的位数,与机器的处理能力(机器的字长)有关,我们所用的电脑
double 一般是64位
多少个日日夜夜想起你,只希望有缘再次相见
2008-12-12 21:08
守鹤
来 自:山東臨沂
等 级:
贵宾
威 望:
12
帖 子:337
专家分:0
注 册:2008-6-20
第
19
楼
得分:0
以下是引用
forever74
在2008-12-12 17:54的发言:
所以所有的工科数值计算都至少double
甚至80位和128位的浮点,很少用32位浮点
多少个日日夜夜想起你,只希望有缘再次相见
2008-12-12 21:09
atkisc
等 级:
新手上路
帖 子:2
专家分:0
注 册:2009-6-20
第
20
楼
得分:0
以下是引用
老刘
在2008-12-12 18:01的发言:
明白了,这么多老师教,在不会也真对不起各位前辈了!我现在总结下我的理解:所谓7位有效数,也可以叫做7位精度,就是数能够精确到7位!如:PI==3.1415926!精度为7位吧,如果圆周率继续往后算就算是超出了这个7位: ...
你这还是不对吧,有效位是7位,算上小数点前非零数字一共7位,你这都8位了......
2009-07-28 17:09
22
2/3页
1
2
3
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-248939-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.193519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved