2013-11-21 6 views
4

У меня есть вопрос относительно форматирования числа. В моем исходном XML у меня есть:XSLT 1.0: номер формата выпуска

<ValueDeltAbsol>1.358.68842</ValueDeltAbsol> 

Теперь это на самом деле 1.358.688,42. Поэтому моя проблема в том, что десятичная точка отсутствует полностью. Так что моя идея - удалить. сначала «translate()», а затем последние 2 цифры будут автоматически десятичными.

Я попытался следующий

<xsl:value-of select="format-number(translate(ValueDelt,'.',''),'#.00')" /> 
<xsl:value-of select="format-number(translate(ValueDelt,'.',''),'#.##')" /> 
<xsl:value-of select="format-number(translate(ValueDelt,'.',''),'###,###.##')" /> 

, который дает мне 135868842.00 и 135868842 и 135,868,842 соответственно.

Он просто не работает, чтобы получить последние 2 цифры десятичными знаками. Может ли кто-нибудь сказать мне, можно ли делать то, что я пытаюсь достичь?

Вход: <ValueDeltAbsol>1.358.68842</ValueDeltAbsol> ожидается выход: <ValueDeltAbsol>1,358,688.42</ValueDeltAbsol>

Большое спасибо, Питер

ответ

4

Если всегда будет две цифры, которые десятые можно разделить переведенное значение на 100:

<xsl:value-of select="format-number(number(translate(ValueDelt,'.','')) div 100,'###,###.00')" /> 

Выход:

<ValueDeltAbsol>1,358,688.42</ValueDeltAbsol> 
+0

Спасибо, Мэтью, это прекрасно работает. – Peter

Смежные вопросы