【发布时间】:2010-10-12 22:04:49
【问题描述】:
我希望能够编写一个函数,它将科学计数法中的数字作为字符串接收,并将系数和指数作为单独的项目从中分离出来。我可以只使用一个正则表达式,但传入的数字可能没有被规范化,我希望能够规范化然后分解部分。
一位同事使用 VB6 获得了部分解决方案,但还没有完全实现,如下面的文字记录所示。
cliVe> a = 1e6
cliVe> ? "coeff: " & o.spt(a) & " exponent: " & o.ept(a)
coeff: 10 exponent: 5
应该是 1 和 6
cliVe> a = 1.1e6
cliVe> ? "coeff: " & o.spt(a) & " exponent: " & o.ept(a)
coeff: 1.1 exponent: 6
正确
cliVe> a = 123345.6e-7
cliVe> ? "coeff: " & o.spt(a) & " exponent: " & o.ept(a)
coeff: 1.233456 exponent: -2
正确
cliVe> a = -123345.6e-7
cliVe> ? "coeff: " & o.spt(a) & " exponent: " & o.ept(a)
coeff: 1.233456 exponent: -2
应该是 -1.233456 和 -2
cliVe> a = -123345.6e+7
cliVe> ? "coeff: " & o.spt(a) & " exponent: " & o.ept(a)
coeff: 1.233456 exponent: 12
正确
有什么想法吗?顺便说一句,Clive 是一个基于 VBScript 的 CLI,可以在我的weblog 找到。
【问题讨论】:
-
拥有一个有效输入 => 输出的列表比你当前的、损坏的实现的输出更有帮助。
-
“应该是-1.233456和-2”应该是“应该是-1.233456和-7”,对吧?
-
我不这么认为。 -1.233456e-7 也可以表示为 -0.01233456
标签: regex parsing scientific-notation