Заменить последнюю запятую на точку - PullRequest
0 голосов
/ 07 февраля 2019

выходная строка (например) равна "12,236,15". Я не могу изменить системный формат или тип строки.

Ожидаемый результат: 12356.15

Я использую:

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

Хорошо работает со строками, содержащими только один символ «запятая».Могу ли я изменить только один символ на «точку» с конца?

Конец может быть как «12, 236,156» (с 3 числами), поэтому фиксированная подстрока не совпадает.

1 Ответ

0 голосов
/ 07 февраля 2019

Я хочу уточнить, возможно ли это, или это ошибка, и другой отдел должен сначала ее исправить.

Оба.Использование запятой для десятичного разделителя и разделителя тысяч определенно не является хорошим способом представления числа.

Тем не менее, похоже, что это работает в XSLT 2.0:

<xsl:variable name="number" select="replace(input, ',(\d*)$', '.$1')" />
<xsl:variable name="number" select="translate($number, ',', '')" />
<xsl:value-of select="format-number($number, '#.00')"/>

Демо : https://xsltfiddle.liberty -development.net / pPzifp4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...