[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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版本,英文企业版是公司的正版系统。

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 10# PowerShell

果然。。。

TOP

本帖最后由 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----不信你试试。
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 6# CrLf

牛人啊,确实是因为系统设置问题导致的。 区域和语言选项设置里面,如下图最后一行:

TOP

回复 4# apang

大牛多谢了, 这个函数formatnumber完全可以,我继续看看round为什么不行

TOP

回复 3# PowerShell

这个漏洞我已经修复了,不是该bug引起的

TOP

这是注册表控制的格式吧,就像日期在中英文系统下显示的格式就有差异
在这里应该可以找到对应项:
  1. HKEY_CURRENT_USER\Control Panel\International
复制代码
1

评分人数

TOP

我是来围观3楼的

TOP

FormatNumber(1/2, 2, true)
1

评分人数

TOP

你这个是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
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

各位版主/坛友们,有碰到过的吗?

TOP

返回列表