DDR爱好者之家 Design By 杰米
一个昵称为预言家晚报的朋友很喜欢玩SOSO问问,等级LV10,已经算比较高了。晚上挂QQ的时候,看到他的问问有更新,就点进去看了一下,问题是:
我写了如下一段VBS
复制代码 代码如下:
dim a,b,c
a=inputbox("a","please input")
b=inputbox("b","please input")
c=a+b
msgbox(c)
可是最后结果是11,我知道肯定是倒数第二行的“+”没有作为运算符,请问这段代码该咋么写才正确?
你肯定会不屑一顾,切,那么简单的程序,谁不会?那请你先别往下看,独立写出这个程序,看看到底对不对。注意我的标题是两数相加,而不是两整数相加。
满意答案有两个,一个是我朋友给的:
复制代码 代码如下:
dim a,b,c
a=inputbox("a","please input")
b=inputbox("b","please input")
c=CInt(a)+CInt(b)
msgbox(c)
另一个是昵称为“乱码”的人给出的:
复制代码 代码如下:
dim a,b,c
a=int(inputbox("a","please input"))
b=int(inputbox("b","please input"))
c=a+b
msgbox c
很显然,一个用了CInt函数,一个用了Int函数。
CInt Function
复制代码 代码如下:
When the fractional part of a value is exactly 0.5, the CInt function rounds to the closest even number. For example, 0.5 rounds to 0, 1.5 rounds to 2, and 3.5 rounds to 4.
CInt differs from the Fix and Int functions, which truncate, rather than round, the fractional part of a number.
CInt不同于Fix和Int函数删除数值的小数部分,而是采用四舍五入的方式。当小数部分正好等于0.5时,CInt总是将其四舍五入成最接近该数的偶数。例如,0.5四舍五入为0,以及1.5四舍五入为2,3.5四舍五入为4。
Int, Fix Functions
复制代码 代码如下:
Both Int and Fix remove the fractional part of number and return the resulting integer value.
The difference between Int and Fix is that if number is negative, Int returns the first negative integer less than or equal to number, whereas Fix returns the first negative integer greater than or equal to number. For example, Int converts -8.4 to -9, and Fix converts -8.4 to -8.
Int和Fix函数都删除number参数的小数部分并返回以整数表示的结果。Int和Fix函数的区别在于如果number参数为负数时,Int函数返回小于或等于number的第一个负整数,而Fix 函数返回大于或等于number参数的第一个负整数。例如,Int 将-8.4转换为-9,而Fix函数将-8.4转换为-8。
一个是四舍五入,一个是删除小数部分,哪个更高明?
其实两个都不怎么高明。虽然输入提问者给出的整数(两个1),两者都能输出正确的答案;但是如果输入的是小数,这两个程序显然都不会输出正确的答案。
下面给出一个我自认为比较“高明”的答案:
复制代码 代码如下:
Dim a,b,c
a = InputBox("a","please input")
b = InputBox("b","please input")
c = 0 + a + b
MsgBox c
我写了如下一段VBS
复制代码 代码如下:
dim a,b,c
a=inputbox("a","please input")
b=inputbox("b","please input")
c=a+b
msgbox(c)
可是最后结果是11,我知道肯定是倒数第二行的“+”没有作为运算符,请问这段代码该咋么写才正确?
你肯定会不屑一顾,切,那么简单的程序,谁不会?那请你先别往下看,独立写出这个程序,看看到底对不对。注意我的标题是两数相加,而不是两整数相加。
满意答案有两个,一个是我朋友给的:
复制代码 代码如下:
dim a,b,c
a=inputbox("a","please input")
b=inputbox("b","please input")
c=CInt(a)+CInt(b)
msgbox(c)
另一个是昵称为“乱码”的人给出的:
复制代码 代码如下:
dim a,b,c
a=int(inputbox("a","please input"))
b=int(inputbox("b","please input"))
c=a+b
msgbox c
很显然,一个用了CInt函数,一个用了Int函数。
CInt Function
复制代码 代码如下:
When the fractional part of a value is exactly 0.5, the CInt function rounds to the closest even number. For example, 0.5 rounds to 0, 1.5 rounds to 2, and 3.5 rounds to 4.
CInt differs from the Fix and Int functions, which truncate, rather than round, the fractional part of a number.
CInt不同于Fix和Int函数删除数值的小数部分,而是采用四舍五入的方式。当小数部分正好等于0.5时,CInt总是将其四舍五入成最接近该数的偶数。例如,0.5四舍五入为0,以及1.5四舍五入为2,3.5四舍五入为4。
Int, Fix Functions
复制代码 代码如下:
Both Int and Fix remove the fractional part of number and return the resulting integer value.
The difference between Int and Fix is that if number is negative, Int returns the first negative integer less than or equal to number, whereas Fix returns the first negative integer greater than or equal to number. For example, Int converts -8.4 to -9, and Fix converts -8.4 to -8.
Int和Fix函数都删除number参数的小数部分并返回以整数表示的结果。Int和Fix函数的区别在于如果number参数为负数时,Int函数返回小于或等于number的第一个负整数,而Fix 函数返回大于或等于number参数的第一个负整数。例如,Int 将-8.4转换为-9,而Fix函数将-8.4转换为-8。
一个是四舍五入,一个是删除小数部分,哪个更高明?
其实两个都不怎么高明。虽然输入提问者给出的整数(两个1),两者都能输出正确的答案;但是如果输入的是小数,这两个程序显然都不会输出正确的答案。
下面给出一个我自认为比较“高明”的答案:
复制代码 代码如下:
Dim a,b,c
a = InputBox("a","please input")
b = InputBox("b","please input")
c = 0 + a + b
MsgBox c
没错,只是多加了一个0。VBS中+号和&号的区别我相信你已经知道,但是我还是简单的复制一下文档:
虽然也可以使用+运算符连接两个字符串,但是您仍应使用&运算符进行字符串的连接以避免混淆,提供易理解的代码。
这是因为在使用+运算符时,有可能无法确定是做加法还是做字符串连接。
表达式的基本子类型决定了+运算符所做的操作,如下表所示:
如果 则 两个表达式都是数值 相加 两个表达式都是字符串 连接 一个表达式是数值,另一个表达式是字符串 相加InputBox函数的返回值是字符串子类型,如果直接用+号的话效果和&号是一样的,即连接字符串。但是如果在前面加个0,效果就不一样了,即上表中的第三种情况,变成加号应有的效果了。
当然,为了程序严谨,还应该使用IsNumeric函数判断输入的是否是数字,简单起见,我在这里就省略了。
原文:http://demon.tw/programming/vbs-add-two-number.html
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年12月26日
2024年12月26日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]