val()函数有何用呀,什么类型的用它转换后都是数字了,而且只有两位.没有意义呀,如果数字超过两位呢?
val()函数有何用呀,什么类型的用它转换后都是数字了,而且只有两位.没有意义呀,如果数字超过两位呢?
--------------------
起源于,我想判断一个字符串是否为数值,所以用val()转换一下,看与原字符是否一致,一致就说明是字符,否则就不是字符,经试这种方法不行,因为任何一个字符串转后都是数字了,不是数字的都转成0.00了,而是多于两位的小数转换以后也只有两位小数了,所以想问问大家,这个函数有什么用呀.
我想判断一个字符串是否为数字,有什么别的好办法呀?
问题点数:20、回复次数:7Top
1 楼apple_8180(十豆三)回复于 2006-06-01 09:43:44 得分 20
如果文本框中没有小数点,参考这个例子:
lcTextVal='123'
?TRANSFORM(INT(VAL(lcTextVal)))==lcTextVal
Top
2 楼apple_8180(十豆三)回复于 2006-06-01 09:45:04 得分 0
lcTextVal='123'
IF TRANSFORM(INT(VAL(lcTextVal)))==lcTextVal
MESSAGEBOX('是数字')
ELSE
MESSAGEBOX('不是数字')
ENDIFTop
3 楼mzdlfk()回复于 2006-06-01 09:57:55 得分 0
没有小数点是好办,最笨的办法可以遍历每一个字符,可是有小数点如何办呀?
看来只有自已写个函数了.
其实vb中就有这样的函数:isnumeric(),我就是不明白,为何vfp中却没有这个功能呢?Top
4 楼dfwxj(清风)回复于 2006-06-01 10:01:12 得分 0
你的思路有问题,在程序中,你要用数值型就用数值型,没有必要根据输入的值来判断是不是你想要的类型。比如说你卖一本书,你就规定要用人民币交换,而不是说用“某种东西”交换,等顾客拿东西来了,你再判断:是人民币的就换书,不是人民币的就不给换Top
5 楼apple_8180(十豆三)回复于 2006-06-01 10:29:09 得分 0
IF TYPE(THISFORM.TEXT1.VALUE)='N'
MESSAGEBOX('是数字')
ELSE
MESSAGEBOX('不是数字')
ENDIFTop
6 楼mzdlfk()回复于 2006-06-01 10:44:46 得分 0
IF TYPE(THISFORM.TEXT1.VALUE)='N'
MESSAGEBOX('是数字')
ELSE
MESSAGEBOX('不是数字')
ENDIF
---------------------
谢谢,还是你行呀.
这个函数是可以的,我原先一直用vartype()来测试,是不行的.用这个函数就行.真怪.
你不信把上面的代码中type换成vartype,执行就是错误的.返回值将一直是"C"
真是不解,继续请教.Top
7 楼mzdlfk()回复于 2006-06-01 11:10:05 得分 0
你的思路有问题,在程序中,你要用数值型就用数值型,没有必要根据输入的值来判断是不是你想要的类型。比如说你卖一本书,你就规定要用人民币交换,而不是说用“某种东西”交换,等顾客拿东西来了,你再判断:是人民币的就换书,不是人民币的就不给换
----------------
谢谢指教,我的思路是这样的,比如一个字段,是日产量,这设计成数值型字段,但是用户在文本框中输入值时必须只输入数字才行呀,当然如果用户输入错误,是存不进去的.可是要给用户提示呀,不能任由用户输入英文,还是进行数据库的写入操作,然后由数据库返回错误呀.我是这样想的,不知对否.
另外,文本框不想用value="0.00"或是inputmask="9999.99"这种方式,因为用户用起来认为输入不方便.尤其是inputmask方式,不能随意输入.所以我要进行文本框验证.
请给我指导.我是初学.Top




