奇怪的格式输出的问题
#include <stdio.h>
void main()
{
float b = 24.6789236;
printf("%f\n",b);
}
输出24.678923
b改成24.6789237,则输出24.678925
在vc,tc中都一样,这是什么道理啊?
另外,vc中监视b的值,到了printf这一步,b居然是24.6789,晕死,怎么跟输出的不同呢
问题点数:20、回复次数:7Top
1 楼jixingzhong(瞌睡虫·星辰)回复于 2005-08-02 10:04:23 得分 10
楼主要注意 float 的精度
一般是 6 到 7 位
在精度范围后面的就是误差很大的数据了
极为不可靠
可以忽略Top
2 楼windking21(想玩玩WOW 真的那么难吗)回复于 2005-08-02 10:05:32 得分 0
float 只能保证7位的精确度
我觉得这是原因……Top
3 楼zidane_yubo(天涯独尊)回复于 2005-08-02 10:46:53 得分 0
精度问题
和编译器问题
我认为Top
4 楼snowbirdfly(专心搞好嵌入式~~~)回复于 2005-08-02 11:29:20 得分 0
学习!
顶一下!
Top
5 楼antijpn(antijpn)回复于 2005-08-02 11:30:47 得分 10
对于printf来说,要打印超过10位十进制有效数字的浮点数完全没问题,但是如果你的数据是在自于float型常量/变量这个完全没有意义……Top
6 楼viviyoyo(枫叶悠悠)回复于 2005-08-02 16:59:30 得分 0
顶一下
我觉得也是精度问题,看来要多注意了!Top
7 楼OpenHero(开勇)回复于 2005-08-02 17:35:27 得分 0
精度Top




