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

hxlqx 2009-06-14 10:27:58
加精
VB中,为什么 int(1.2*10) =11?
...全文
1526 97 打赏 收藏 转发到动态 举报
写回复
用AI写文章
97 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq771365951 2011-09-15
  • 打赏
  • 举报
回复
VB中怎么才能把数4舍5入?
herry2189 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vbman2003 的回复:]
5楼错了吧
这个示例因为精确度问题,运算结果可能是近似于12的值,比如 11.99999999,所以int(number)会返回11
或许也会有12.00000001,从而返回12,浮点运算的不确定性很多,这个没深入研究过,但这个示例肯定不会返回10....
[/Quote]
这个正解
hujiyang413 2011-08-10
  • 打赏
  • 举报
回复
大家说得都很有理,但是自己还不是很懂。自己测试一下
在vb里运行结果是11
编译好了运行是12
不晕才怪啊。
QQ472152323 2011-07-20
  • 打赏
  • 举报
回复
int(X)是不大于X的最大整数 当X为12时输出的是11
小雷阵雨 2010-12-14
  • 打赏
  • 举报
回复
长见识了~
JasinYip 2010-12-12
  • 打赏
  • 举报
回复
楼主试下这样,你会有新发现!

Print CInt(1.2 * 10)
Print Int(1.2 * 10)

xlx_zzuli 2010-11-26
  • 打赏
  • 举报
回复
我来看看精华帖。。
LittlePig 2010-08-03
  • 打赏
  • 举报
回复
[Quote=以下代码为本人标记专用,为的是快速找到原来的帖子或检测无德的克隆网站,与本贴无关。请无视。]
722EB5077A7F332864DB9E3C4D9920F7
[/Quote]
马克,lz可以结贴了.
fdfun 2010-07-08
  • 打赏
  • 举报
回复
呵呵……这个是编译器的问题吧
具体的要用ASM解答……
ewqer 2010-07-03
  • 打赏
  • 举报
回复
[Quote=引用 72 楼 dsq2006 的回复:]
引用楼主 hxlqx 的回复:
VB中,为什么 int(1.2*10) =11?

不对吧?我刚算的结果如下:
print int(1.2*10)
12

先算()内 1.2*10=12,int(12)=12。。。OK.
[/Quote]

?????为什么会这样
第一次运行显示“12”,再往后就显示“11”了。
nbwangqy 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 hxlqx 的回复:]
VB中,为什么 int(1.2*10) =11?
[/Quote]
推荐直接用int(1.2!*10)
这是最直观的类型转换,也是最简单的,运算速度最快的
wys8435c 2010-04-20
  • 打赏
  • 举报
回复
谢谢各位大侠 学习了……
lb_bn 2010-04-13
  • 打赏
  • 举报
回复
int要小心使用,浮点运算的问题很严重.


    MsgBox Int(1.2 * 10)
a = 1.2 * 10
MsgBox Int(a)


这两个不一样

huhufu 2010-04-06
  • 打赏
  • 举报
回复
UP 有点奇怪 慢慢学习
  • 打赏
  • 举报
回复
严格的说应该是在调试的时候等于12
?int(1.2*10)
12

但是在运行中的时候等于11
Private Sub Command1_Click()
Print Int(1.2 * 10)
End Sub
BUYUELEICHI 2010-03-30
  • 打赏
  • 举报
回复
我怎没得12
moke520 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 of123 的回复:]
展开来说一下。这实际上是个有趣的数学问题。

我们都知道,在 10 进制中 1/7 是一个无穷循环小数。但是,如果我们用 7 进制来表示,它就是 0.1。

在 2 进制和 10 进制之间,也有类似问题。首先,我们回顾一下小数的概念。实际上,小数就是分数或分数的和。

在 10 进制中,0.1 表示 10 分之一,0.01 表示 10^2 分之一,以此类推。

在 2 进制中,0.……
[/Quote]

强淫 - -
my13513480001 2010-02-15
  • 打赏
  • 举报
回复
顶44楼!
数据精度问题
leftxp 2010-01-25
  • 打赏
  • 举报
回复
Mark

留以后查阅……
sxp922 2009-10-27
  • 打赏
  • 举报
回复
还是比较费解! 因为按运算规则,应该是选得出:(1.2*10)的结果,再运行Int的呀?
加载更多回复(75)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧