各位,val函数不懂
vb吧
全部回复
仅看楼主
level 9
抠脽酝jq87 楼主
1l防吞
2020年05月28日 04点05分 1
level 9
抠脽酝jq87 楼主
我知道
Val("3.14")返回3.14
Val("31.42abc")返回31.42
Val(3.14)返回多少?3.14吗?
Val("0.314")竟然返回.314!!!怎么返回0.314呢?要不要format函数?求代码!!!
2020年05月28日 04点05分 2
level 12
强制转换字符型为数值型,
从左开始判断
Val("123")=123
Val("-123")=-123
Val("+123")=123
Val("123abc")=123
Val("12ab34")=12
Val("abc123")=0
2020年05月28日 04点05分 3
level 8
返回包含于字符串内的数字,字符串中是一个适当类型的数值。
语法
Val(string)
必要的 string 参数可以是任何有效的字符串表达式.
说明
Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。
下面的返回值为 1615198:
Val(" 1615 198th Street N.E.")
2020年05月28日 04点05分 4
level 9
抠脽酝jq87 楼主
我的问题是Val("0.314")怎么返回0.314而不返回.314
2020年05月28日 04点05分 5
先把变量类型吃透,“1”和1,什么区别?
2020年05月28日 04点05分
@mijing2000 类型不同
2020年05月28日 04点05分
.314和0.314是一样的,但是你要分清内存中的0.314和你显示到程序上,眼睛能看见的0.314那是有本质区别 像 print xxx.text xxx.caption这些函数或属性,是将内存中的0.314这个值转成字符串“0.314”显示在屏幕上让你看到,能理解吗?
2020年05月28日 05点05分
@mijing2000 嗯我知道,就要0.XX的样式
2020年05月28日 05点05分
level 13
FormatNumber("0.314", 3, vbTrue)
2020年05月28日 05点05分 6
谢谢。又是你,上次帮我解决背景的大佬
2020年05月28日 05点05分
吧务
level 14
通俗点说,VB里面对于绝对值大于0但是小于1的浮点数,会省略0
2020年05月28日 05点05分 7
正解,其实这个是取决于系统设置的,在区域和语言选项中有数字格式的设置,其中一项是“显示前导零”
2020年05月28日 07点05分
比如我刚查看过,我的Win10系统里设置的就是显示这个0,在VB中测试,也是可以正常出现0的
2020年05月28日 07点05分
level 11
Val("0.314")竟然返回.314,是没有问题的。
2020年05月28日 09点05分 8
1