为什么double型的0.29*100让后结果是28.999999999999996
			转化整型的时候会截断小数位变成28了,朋友开发一个java项目做折扣计算的时候出现这个问题了。结果发现.Net也是这样。不光是0.29 0.57的时候也会变成56.9999999X
			
				
BIG阳
 
				浏览 1237回答 8
			 
			
			
		
		
		
		
			
			8回答
			
				
				- 
					
					潇潇雨雨
					decimal a = 0.29m
这样的计算方式就是精确的。
dobule和float 比如1.0 在计算机中可能表现为0.9999999999999999999或者是 1.000000000000001
这2种形式 
					
				 
				
				- 
					
					胡子哥哥
					在金额使用的话:用decimal 比较。。小数点后几位   你可以按位截取的
普通的应用:应用Double Double也是可以截取的 
					
				 
				
				- 
					
					蝴蝶不菲
					如果计算金额的话,你用decimal比较准确,这个是浮点数,在计算机的存储方式的形式只识别0,1,或者用Math.Round来忽略误差值 
					
				 
				
				- 
					
					鸿蒙传说
					精度不同,导致的。 
					
				 
				
				- 
					
					holdtom
					要想不损失,
用Java的BigInteger 
					
				 
				
			
			
		
		
			
			打开App,查看更多内容