Я хочу иметь возможность написать функцию, которая получает число в научной нотации в виде строки и отделяет от нее коэффициент и показатель как отдельные элементы. Я мог бы просто использовать регулярное выражение, но входящий номер не может быть нормализован, и я предпочел бы нормализовать, а затем сломать части.
У коллеги есть часть пути решения, использующего 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 - это CLI, основанный на VBScript, и его можно найти в моем weblog.