Мы должны преобразовать некоторый XML, который содержит числа в экспоненциальной (так называемой научной) нотации
например.
<Value>12.34e12</Value>
<Value>-12.34e-12</Value>
довольно раздражающе, мы не можем использовать функцию sum () и тому подобное, потому что синтаксический анализатор XSLT ожидает, что числа будут в десятичном формате.
[Мы используем класс .Net XslCompiledTransform для выполнения преобразования, но я думаю, что эта проблема является общей для всех реализаций XSLT]
Единственное решение этой проблемы, которое у нас есть, - преобразовать строковое значение в число с помощью функции javascript (см. Ниже), а затем написать собственный шаблон суммы, который вызывает эту функцию.
Мне кажется, что должен быть лучший путь - есть?
/*
This function attempts to coerce the input into a number.
*/
function toNumber( x ) {
if(!x) {
return Number.NaN;
}
if(typeof x === 'number') {
return x;
}
return parseFloat(x);
};