关于DOUBULE类型相乘的奇怪问题,很是告不明白 浮点数总会有一点微小的误差,LZ有兴趣可以学习一下IEEE754试试Math.Floor( Math.Round(c, 2) ),不知道行不行,期待楼下的高手 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为浮点数是没有0这个概念的,所有的数都是有精度的。这也就是为什么你一乘会出现869.99999999999989的奇怪数字的原因,因为所有的数字都有一个精度问题,所以使用Double型的值一定要限定一个精度. 因为很多浮点小数都是不精确的,double b = 0.29;从这个数储存到计算机中开始,它已经是一个近似数你直接输出下b看看计算机里面只有二进制十进制小数到二进制小数有个转换过程只有2的负幂的和,才是二进制有限小数其他都是无限小数,必然会损失精度的~ C# 如何使两个对象相同的属性名字自动全部赋值? 关于在C#中,文本框里的内容为空时,系统SQL 空值的问题??? Session 问题急帮我解决一下吧!!!! 如何在后台c#中获得前台的html对象 。net 安装部署打包 问题 看c#高级编程中的一个例子 3000的阶乘有多少个零? 冒泡排序的求正解 C#链接sql数据库 求大神指教 在C#里怎么获取实例的地址! 如何动态更改columntype的值
这也就是为什么你一乘会出现869.99999999999989的奇怪数字的原因,因为所有的数字都有一个精度问题,所以使用Double型的值一定要限定一个精度.
double b = 0.29;
从这个数储存到计算机中开始,它已经是一个近似数
你直接输出下b看看计算机里面只有二进制
十进制小数到二进制小数有个转换过程
只有2的负幂的和,才是二进制有限小数
其他都是无限小数,必然会损失精度的~