孔明
可以请教你吗?
if((0.01*f1+0.02*f2+0.05*f5+0.1*m1+0.2*m2+0.5*m5)<=1.001 &&(0.01*f1+0.02*f2+0.05*f5+0.1*m1+0.2*m2+0.5*m5)>=0.999) (0.01*f1+0.02*f2+0.05*f5+0.1*m1+0.2*m2+0.5*m5)>=0.999)也要加上?
----------------解决方案--------------------------------------------------------
孔明
可以请教你吗?
if((0.01*f1+0.02*f2+0.05*f5+0.1*m1+0.2*m2+0.5*m5)<=1.001 &&(0.01*f1+0.02*f2+0.05*f5+0.1*m1+0.2*m2+0.5*m5)>=0.999) (0.01*f1+0.02*f2+0.05*f5+0.1*m1+0.2*m2+0.5*m5)>=0.999)也要加上?
是,因为<=1.001的数有无数个,0.9,0.5等都不是所要的,需要的就是约等于1的(因为小数的有精度限制,所以必须加上>0.999 <1.001)
----------------解决方案--------------------------------------------------------
孔明
谢谢你!
但我想问小数的精度限制在C上就是3位有效数字还是一般取3位有效数字?
----------------解决方案--------------------------------------------------------
孔明
谢谢你!
但我想问小数的精度限制在C上就是3位有效数字还是一般取3位有效数字?
其实,小数的精度还是很高的
但
float a=1.0
(a==1)却是时常结果为非(0)
float的精度一般为5-6位,double能有十多位
具体可以看:http://doc.greatso.com/20070520/3307/
[此贴子已经被作者于2007-7-21 9:43:06编辑过]
----------------解决方案--------------------------------------------------------
老师讲过了,我怎么给忘了。
孔明,谢谢了!
float的精度一般为6-7位,double有15-16位。
如果被我们老师知道问这种问题,
原本就半圈的头发又要少一半了!
----------------解决方案--------------------------------------------------------