VB中,为什么Int(Val(1.2) * 10)=11?

来源:百度知道 编辑:UC知道 时间:2024/05/07 14:22:38
如题
int(1.2*10) 就是等于11,为什么?难道微软会出这么明显的错误? 问题提出的原因是:
text2.text=int(text1.text*10)

是返还数的类型问题 你这样写就得到12了
Private Sub Form_click()
Dim a As Integer
a = Val(1.2) * 10
Print Int(a)
End Sub

楼上的……你根本没用int……那还有啥说的?……

微软不可能把所有数字的int值都输进程序里吧 他们做的是运算过程procedure 也不可能把所有数字都输一遍测试测试哇? 出错的原因可能不在vb上 你管那么多干嘛 多少年前的产品了 不都告你补救的方法了嘛……烦人

搞不懂……晕……见鬼了
int(12)对的了 1.2*10也对的了……int(1.2*10)就错了……
vb本来就不怎么稳定……绝对是实话

【你可以这么判断一下 来补救~】
if int(1.2*10) < (1.2*10)-1 then '输出结果给他+1 其中1.2*10可以换成任意变量

Int、Fix 函数

返回参数的整数部分。

语法

Int(number)

Fix(number)

必要的 number 参数是 Double 或任何有效的数值表达式。如果 number 包含 Null,则返回 Null。

说明

Int 和 Fix 都会删除 number 的小数部份而返回剩下的整数。

Int 和 Fix 的不同之处在于,如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。

val (1.2)表示返回数值类型函数val(1.2)=1.2
然后可能是
int(12)对的了 1.2*10也对的了……int(1.2*10) 就不能有这样的函数啊!干吗还要个int啊
可能是你提供的程序不完全的缘故……
vb不可