除法发现奇怪现象,vb居然连小学生水平都没有
fix(36.6/12.2)=2 ???int(36.6/12.2)=2 ???
--------------------编程问答-------------------- 不会吧? --------------------编程问答-------------------- 我的都是3,SP版本? --------------------编程问答-------------------- 我机器上是等于3的 --------------------编程问答-------------------- 你怎么不用sp6的版本? --------------------编程问答-------------------- 不会的。是你自己的问题。 --------------------编程问答-------------------- 经测试,不存在这样的问题 --------------------编程问答-------------------- 是sp6,部分电脑上存在以上问题,怀疑是cpu问题,可能计算结果应该是2.99999999999999999,抹掉小数当2了 --------------------编程问答-------------------- 幼儿园来的。
--------------------编程问答--------------------
哈哈哈哈哈哈哈哈 --------------------编程问答-------------------- 完全没有问题,是3,是不是你的VB出故障了~??? --------------------编程问答-------------------- 幽灵事件? --------------------编程问答-------------------- int(36.6/12.2+1e-6)
本来浮点运算就有误差,C也一样有,稍微加一个误差修正 --------------------编程问答-------------------- 测试是3 --------------------编程问答-------------------- 3
WI2003,VB6SP6,AMD N970 CPU --------------------编程问答-------------------- int(36.6/12.2+0.5) --------------------编程问答-------------------- 大一学过计算机原理吗?
浮点数的小数部分是二进制小数。有限长度的二进制小数无法精确表示所有的十进制小数。它的小数是 0.5, 0.25, 0.125, 0.0625, …… 等“凑”出来的。
如果需要精确的十进制小数值,且小数不超过 4 位,建议用 Currency 类型。它是用整数存储的,显示为小数。 --------------------编程问答-------------------- --------------------编程问答-------------------- 删帖好快呀。 --------------------编程问答-------------------- 当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。
--------------------编程问答-------------------- 闲着没事,折腾点有用的 --------------------编程问答--------------------
学习下 --------------------编程问答-------------------- 学习一下。
补充:VB , 基础类