回 帖 发 新 帖 刷新版面

主题:float类型定义变量,给它附值0.1,为什么结果不是0.1?

float类型定义变量,给它附值0.1,为什么结果是0.1000000000149?这个值是后面用来计算用的,要精确的值。
既然已经定义类型,那么该值的格式也已经固定,为什么会这样呢?如何避免?

float a;
a=0.1;
Edit1->Text = a;
这是碰到问题后另建项目做验证,结果一样。
请知道问题所在的指点一下!

回复列表 (共5个回复)

沙发

我把后面的
Edit1->Text=FloatToStr(a);
运行结果还是一样,就是是什么原因呢?

板凳

float好象本来就是非精确的,你用函数格式化一下,保留固定位数的小数应该就没有问题了

3 楼



我看了你写的,我觉得你的想法是对的,但是可能你的方法可能不对吧?
你在:

        float固定位数的小数应该就没有问题了.
        你的小数点就没有固定.............

4 楼


那到底应该怎么办呢?

5 楼

float数据的精确度好象只有小数点后七位(自己查一下) 也就是说在计算时如果你都采用float 那么结果的精确度也就只有那么多位!后几位是随机产生的
要想精确些用 double 就是了

我来回复

您尚未登录,请登录后再回复。点此登录或注册