回 帖 发 新 帖 刷新版面

主题:[讨论]请教一个问题

我经常在转换表格数据时碰到一个意外的情况:

字符型字段名item,当item是一个数字加英文字母e或E时,val(item)的值会是一个离奇大的数字

譬如,item='123e'时,val(item)不是123,而是一个非常大的数字(不过记不太清了,也可能是非常小的数字)。因为有时出现这种情况,有时正常,记不太清了。

“E”跟在数字后面是不是会有什么特别的含意呢?本人数学不好,但估计要么是一个VFP的bug,更可能是那个地方譬如设置上的问题吧。请高手指点一下,谢谢!

回复列表 (共7个回复)

沙发

请百度一下“科学计数法”
字母“E”确实有含义。代表科学计数法,后面的数字是指数。
1.23E+10=12300000000
1.23E-10=0.000000000123

item='123E'
?val(item)
结果是123.00

板凳


谢谢楼上,原因搞清楚了

有什么办法在用函数val()转换时不出现这种情况呢?

我觉得val()函数忽视了这一点,也算个缺陷吧

3 楼


我觉得val()函数忽视了这一点,也算个缺陷吧


从未出现过这种情况啊!

我测试一下:
item='123E'
?val(item)
结果是123.00

4 楼

[quote]
从未出现过这种情况啊!

我测试一下:
item='123E'
?val(item)
结果是123.00
[/quote]

--------------------------
e后有破折号+数字时才会出现这种情况,如:
val('123e-88') 不等于123,而是=1.23e-86

破折号后数字不同,转换后的也都是不同的意外数值

5 楼

[quote]
我觉得val()函数忽视了这一点,也算个缺陷吧[/quote]
我觉得这不但不是VFP的缺陷,而是VFP的高明。
切菜时用菜刀切了手,抱怨菜刀生产厂有些不公平吧?哈哈!

6 楼

[quote][quote]
我觉得val()函数忽视了这一点,也算个缺陷吧[/quote]
我觉得这不但不是VFP的缺陷,而是VFP的高明。
切菜时用菜刀切了手,抱怨菜刀生产厂有些不公平吧?哈哈!

[/quote]

请慢一点“哈哈”,说明一下高明在何处

切菜时刀把断了,砸了自己的脚,还夸菜刀生产厂高明。呵呵

7 楼

[quote][quote][quote]
我觉得val()函数忽视了这一点,也算个缺陷吧[/quote]
我觉得这不但不是VFP的缺陷,而是VFP的高明。
切菜时用菜刀切了手,抱怨菜刀生产厂有些不公平吧?哈哈!

[/quote]

请慢一点“哈哈”,说明一下高明在何处

切菜时刀把断了,砸了自己的脚,还夸菜刀生产厂高明。呵呵[/quote]

不论是菜刀切了手、砸了脚,就是再跳起来砍了屁股,抱怨菜刀生产厂都不公平。哈哈!

我来回复

您尚未登录,请登录后再回复。点此登录或注册