关于VB的问题
int这个函数是取整数部分,而尾数部分不管大小截掉不要了,因为int的参数是双精度数据,所以int(0.3*100)得出的结果应该是29.9999999,取整后即为29,如果要得到30这个结果不如写:print int(cint((0.3)*100))
a = Int((0.3) * 100)
Private Sub Command1_Click()Dim a As Integera = Val(0.3 * 100)Print aEnd Sub
Dim a As Integera = Int((0.3) * 100)Print a把0.3括起来应该就不会出问题了
Dim a As Integera = Round(0.3 * 100, 0)Print a答案补充或者答案补充不要在int()里面做计算,直接把值赋予变量X,然后再int(x),这样就不会出错了
这个问题一定是出现在Int(0.3 * 100)这行代码中!为什么会出现29的情况那就是因为Int()这个方法返回的问题!你检查一下Int()这个方法!如果你想让它一直等于30的话!你把a =Int(0.3 * 100)换成a = 0.3 * 100就可以解决问题了!答案补充真奇怪!这个函数的确是应该等于30啊!Val()这个函数返回的值如果是数字型的,再减去整数,再乘以100确实应该是30啊!
VB中的bug int函数返回的是一个不大于数本身整数的数
Private Sub Command1_Click()a = 0.3 * 100Print aEnd Sub
答:缺省 [As类型]为可变类型。 示例 Dim a as Integer Dim b as String dim c as double dim d as sin...详情>>
答:详情>>