标题:关于实际计算是整数,但数值显示为何是小数问题
只看楼主
xingming022
Rank: 1
等 级:新手上路
帖 子:103
专家分:9
注 册:2015-1-26
结帖率:50%
已结贴  问题点数:10 回复次数:3 
关于实际计算是整数,但数值显示为何是小数问题
下面是一段代码,计算结果明明应该是整数,但是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
搜索更多相关主题的帖子: 计算 整数 数值 显示 小数 
2018-12-09 19:15
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:4 
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   '声明的数组为整型数据类型
计算结果肯定是整型,就是整数,不可能是小数!

请不要选我!!!
2018-12-09 21:29
yingshu
Rank: 4
等 级:贵宾
威 望:10
帖 子:49
专家分:212
注 册:2018-7-24
得分:4 
I=0,输出结果为5.2,这个没问题   
I=1,输出结果为8.7999999,这个应该是进制转换产生的误差

 这个并非绝对会有,你可以将都赋值为0.8等多尝试几次,结果和实际一样  
 
2018-12-09 22:24
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:4 
单精度浮点计数,就是4字节进似计数。
它包含符号位、数字位、指数位。
当数字位包含小数时,小数如果不是2的整数次幂的和,那么小数就是进似值,此时的值就是最长单精度长度的进似值

2018-12-09 23:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491922-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090287 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved