注册 登录
编程论坛 VB6论坛

关于实际计算是整数,但数值显示为何是小数问题

xingming022 发布于 2018-12-09 19:15, 1953 次点击
下面是一段代码,计算结果明明应该是整数,但是msgbox 显示的是小数。请高手指点下?
我也试过把数据类型定义为double就没有问题,但是不明白为什么。
Private Sub Command2_Click()
Dim DiBankuandu As Single
DiBankuandu = 1.6
Dim TaiJiekuandu(1) As Single
TaiJiekuandu(0) = 1.8
TaiJiekuandu(1) = 1.8
a = 1.8
b = 1.8



For I = 0 To 1
    DiBankuandu = DiBankuandu + 2 * TaiJiekuandu(I)
    MsgBox DiBankuandu
Next


End Sub
3 回复
#2
ZHRXJR2018-12-09 21:29
Dim DiBankuandu As Single   '声明的变量为单精度数据类型
DiBankuandu = 1.6    '给变量赋值也是小数,是单精度数据
Dim TaiJiekuandu(1) As Single   '声明的数组也为单精度数据类型
TaiJiekuandu(0) = 1.8    '给数组赋值也是小数,是单精度数据
TaiJiekuandu(1) = 1.8    '给数组赋值也是小数,是单精度数据
当然计算结果就应该是单精度数据,也就是小数,不可能是整数!

如果是这样:
Dim DiBankuandu As Integer   '声明的变量为整型数据类型
Dim TaiJiekuandu(1) As Integer   '声明的数组为整型数据类型
计算结果肯定是整型,就是整数,不可能是小数!
#3
yingshu2018-12-09 22:24
I=0,输出结果为5.2,这个没问题   
I=1,输出结果为8.7999999,这个应该是进制转换产生的误差

 这个并非绝对会有,你可以将都赋值为0.8等多尝试几次,结果和实际一样  
 
#4
wds12018-12-09 23:14
单精度浮点计数,就是4字节进似计数。
它包含符号位、数字位、指数位。
当数字位包含小数时,小数如果不是2的整数次幂的和,那么小数就是进似值,此时的值就是最长单精度长度的进似值

1