主题:float类型定义变量,给它附值0.1,为什么结果不是0.1?
			
 colin1
				 [专家分:0]  发布于 2006-03-23 16:25:00							
			float类型定义变量,给它附值0.1,为什么结果是0.1000000000149?这个值是后面用来计算用的,要精确的值。
既然已经定义类型,那么该值的格式也已经固定,为什么会这样呢?如何避免?
float a;
a=0.1;
Edit1->Text = a;
这是碰到问题后另建项目做验证,结果一样。
请知道问题所在的指点一下!
						
					 
		
			
回复列表 (共5个回复)
		
								
				沙发
				
					
过天星 [专家分:60]  发布于 2006-03-25 00:57:00				
				我把后面的
Edit1->Text=FloatToStr(a);
运行结果还是一样,就是是什么原因呢?
							 
						
				板凳
				
					
bingyan [专家分:220]  发布于 2006-03-25 21:15:00				
				float好象本来就是非精确的,你用函数格式化一下,保留固定位数的小数应该就没有问题了
							 
						
				3 楼
				
					
mrluowei [专家分:30]  发布于 2006-03-29 19:44:00				
				
我看了你写的,我觉得你的想法是对的,但是可能你的方法可能不对吧?
你在:
        float固定位数的小数应该就没有问题了.
        你的小数点就没有固定.............
							 
						
				4 楼
				
					
tingyazhao [专家分:50]  发布于 2006-04-30 16:04:00				
				
那到底应该怎么办呢?
							 
						
				5 楼
				
					
yss2004 [专家分:30]  发布于 2006-05-01 11:40:00				
				float数据的精确度好象只有小数点后七位(自己查一下) 也就是说在计算时如果你都采用float 那么结果的精确度也就只有那么多位!后几位是随机产生的
要想精确些用 double 就是了
							 
									
			
我来回复