当前位置:编程学习 > VB >>

除法发现奇怪现象,vb居然连小学生水平都没有

fix(36.6/12.2)=2   ???
int(36.6/12.2)=2   ???

--------------------编程问答-------------------- 不会吧? --------------------编程问答-------------------- 我的都是3,SP版本? --------------------编程问答-------------------- 我机器上是等于3的 --------------------编程问答-------------------- 你怎么不用sp6的版本? --------------------编程问答-------------------- 不会的。是你自己的问题。 --------------------编程问答-------------------- 经测试,不存在这样的问题 --------------------编程问答-------------------- 是sp6,部分电脑上存在以上问题,怀疑是cpu问题,可能计算结果应该是2.99999999999999999,抹掉小数当2了 --------------------编程问答-------------------- 幼儿园来的。

--------------------编程问答--------------------
引用 8 楼 of123 的回复:
幼儿园来的。

哈哈哈哈哈哈哈哈 --------------------编程问答-------------------- 完全没有问题,是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 函数总是返回与传入的数据类型相同的值。

--------------------编程问答-------------------- 闲着没事,折腾点有用的 --------------------编程问答--------------------
引用 19 楼 zhao4zhong1 的回复:
当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。

学习下 --------------------编程问答-------------------- 学习一下。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,