找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19042|回复: 10

[问题求助] 【已解决】vbs在中/英文版WIN7操作系统里面对除法计算的结果显示有所不同,何解?

[复制链接]
发表于 2014-4-22 11:22:42 | 显示全部楼层 |阅读模式
本帖最后由 gflrlm 于 2014-4-22 22:58 编辑

VBS 求助:  有如下很简单的除法,用round函数取小数点后2位。

Dim a1,a2,a3                                            
a3=1/2
a3=round(a3,2)  
msgbox(a3)

在中文旗舰版win7 64位系统里面,显示的结果是.5
在英文企业版win7 32位系统里面,显示的结果是0.5

中文旗舰版是我自己安装的ghost版本,英文企业版是公司的正版系统。

各位大牛,有何见解?多谢了

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2014-4-22 12:49:42 | 显示全部楼层
各位版主/坛友们,有碰到过的吗?
发表于 2014-4-22 13:53:57 | 显示全部楼层
你这个是bug,但是今年1月vbs有高危漏洞了,http://www.bathome.net/thread-27943-1-1.html  随后出了补丁,你补了高危漏洞,或许会去掉此bug。
另外,欢迎阅读拙作。
powershell躺着进行数值计算   http://www.bathome.net/thread-26030-1-1.html
用powershell帮丹姐数钱  http://www.bathome.net/thread-28100-1-1.html
发表于 2014-4-22 14:27:49 | 显示全部楼层
FormatNumber(1/2, 2, true)

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2014-4-22 18:45:10 | 显示全部楼层
我是来围观3楼的
发表于 2014-4-22 20:43:05 | 显示全部楼层
这是注册表控制的格式吧,就像日期在中英文系统下显示的格式就有差异
在这里应该可以找到对应项:
  1. HKEY_CURRENT_USER\Control Panel\International
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-4-22 22:41:06 | 显示全部楼层
回复 3# PowerShell

这个漏洞我已经修复了,不是该bug引起的
 楼主| 发表于 2014-4-22 22:44:43 | 显示全部楼层
回复 4# apang

大牛多谢了, 这个函数formatnumber完全可以,我继续看看round为什么不行
 楼主| 发表于 2014-4-22 22:54:18 | 显示全部楼层
回复 6# CrLf

牛人啊,确实是因为系统设置问题导致的。 区域和语言选项设置里面,如下图最后一行:
发表于 2014-4-23 23:11:08 | 显示全部楼层
本帖最后由 PowerShell 于 2014-4-23 23:14 编辑

1 认为bug,我武断了  

2 原来如此,我的中文64位win8.1企业版也默认也是.7,算出来你那个也是.5---跟是否中文没关。

3 我认为vbs 的 round这个特性不好,powershell的round就没这问题
[system.math]::round(0.5,2)  ---返回0.5----格式那选择的是.7----不信你试试。
 楼主| 发表于 2014-4-25 02:31:43 | 显示全部楼层
回复 10# PowerShell

果然。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 17:24 , Processed in 0.022078 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表