在我做开发的那台电脑上,用IsNumeric来判断一个字符串是否为数字类型的时候,它可以判断"1."为数字类型.
但是到了客户的电脑上之后,这软件老是出错.
后来在客户的电脑上调试才发现,原来客户的电脑中的IsNumeric函数,把"1."识别为字符类型了!这究竟怎么回事??每台电脑中IsNumeric函数对字符的识别都存在差异吗?
但是到了客户的电脑上之后,这软件老是出错.
后来在客户的电脑上调试才发现,原来客户的电脑中的IsNumeric函数,把"1."识别为字符类型了!这究竟怎么回事??每台电脑中IsNumeric函数对字符的识别都存在差异吗?
因为是在EN_CHANGE消息中进行监视,所以当用户想输入小数,即Edit控件上正在显示"1."的时候,客户电脑就出错了
我判断它正在输入的内容是否为数字,如果是数字,则取消处理.
如果不是数字,则进行处理!!!!按照1楼的同志的意思,那我该怎么处理这个虫子?
当然,我的意思是在程序中用代码处理,而不是去修改客户电脑中的区域设置
开头我也想过把ES_NUMBER样式加入到Edit中,但是这样的话就不能拥有小数了
但是我基本上是在实时监视的,如果IsNumeric中判断"1."不是数值类型的话,那后面的处理也就没用了!
首先判断它是否为数字,如果不为数字,则设置Edit控件的文本为"0.00",接着退出消息处理程序
如果是数字,则再判断它的小数位有多少位,如果小于等于2位,则不管它
如果大于2位,则用Format函数对它进行保留二位小数的处理(例如1.137则Format为1.14,Format函数自己会四舍五入)现在问题来了,当客户输入"1."的时候(还没来得及输入小数),IsNumeric就已经把它判断为非数值类型,直接把Edit的文本设置为"0.00"了