Форматирование чисел на XSL

#
Re: Форматирование чисел на XSL
Ориентировочная стоимость постройки дома:   NaN руб.

Шаблон:
<xsl: decimal-format name="mydec" decimal-separator=" " grouping-separator="." />
.....

<td width="65%"  align="right">Ориентировочная стоимость постройки дома:</td>
<xsl:variable name="qwer55" select="item_propertys/item_property[@xml_name = 'qwer5']/value"/>
<td><strong><xsl:value-of disable-output-escaping="yes" select="format-number('$qwer55', '## ### ##0', 'mydec')"/> руб.</strong></td>


HostCMS v6.02
minsk
#
Re: Форматирование чисел на XSL
minsk, попробуйте
<xsl:decimal-format name="mydec" decimal-separator=" " grouping-separator="." nan="0.00" />

тогда вместо NaN будет выводиться 0.00
Но сама проблема в другом месте - у вас в переменной $qwer55 не число. Почему - разбирайтесь у себя в доп.свойствах )
Заказов не беру. Консультирую редко.
#
Re: Форматирование чисел на XSL
Спасибо, верно, NaN - Not a Number оказывается.
Плохо копировал пример 1 стр поста - переменная $qwep без кавычек:
<xsl:decimal-format name="mydec" decimal-separator=',' grouping-separator=' ' />
...
<td width="65%" align="right">Ориентировочная стоимость постройки дома:</td>
<xsl:variable name="qwep" select="item_propertys/item_property[@xml_name = 'qwer5']/value"/>
<td><strong><xsl:value-of select="format-number($qwep, '### ###', 'mydec')"/> руб.</strong></td>

Спасибо natalya
minsk
#
Re: Форматирование чисел на XSL
а как отделить тысячи от сотен и десяток пробелом в цене для модификаций (в шаблоне товара)?
т.е. 12 000 руб. например
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Форматирование чисел на XSL
вроде у самой получилось:

         <td style="text-align: right;">

<!-- Вывод цен в другой валюте -->
<xsl:variable name="price" select="price_discount"/>

<!-- Цена модификации -->
            <xsl:choose>
               <xsl:when test="price_discount != 0">
                  <b><xsl:value-of select="format-number($price, '### ##0,00', 'my')"/>&#xA0;
                     <!-- Валюта товара -->
                     <xsl:value-of disable-output-escaping="yes" select="currency"/></b>
               </xsl:when>
               <xsl:otherwise>договорная</xsl:otherwise>
            </xsl:choose>
         </td>
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Форматирование чисел на XSL
Понадобилось сегодня отделить стилем копейки

<xsl:decimal-format name="my" decimal-separator="," grouping-separator=" "/>

<xsl:variable name="price"><xsl:value-of disable-output-escaping="yes" select="format-number(price, '### ##0,00', 'my')"/></xsl:variable>
<xsl:value-of select="substring-before($price, ',')"/>руб. <span><xsl:value-of select="substring-after($price, ',')"/> коп.</span>
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Форматирование чисел на XSL
EugenyP писал(а):
<xsl:variable name="price"><xsl:value-of disable-output-escaping="yes" select="format-number(price, '### ##0,00', 'my')"/></xsl:variable>
<xsl:value-of select="substring-before($price, ',')"/>руб. <span><xsl:value-of select="substring-after($price, ',')"/> коп.</span>


спасибо за этот быстрый рецепт!
#
Re: Форматирование чисел на XSL
для получения такой цены:



<li class="plan-price"><xsl:variable name="price"><xsl:value-of disable-output-escaping="yes" select="format-number(price, '### ##0', 'my')"/></xsl:variable>
                        <span><xsl:value-of select="substring-before($price, ' ')"/></span><span><xsl:value-of select="substring-after($price, ' ')"/></span><p><xsl:value-of select="currency"/></p></li>
#
Re: Форматирование чисел на XSL
Как можно легким движением руки на всём сайте убрать копейки в цене.
Везде во всех шалонах xsl  прописаны конструкции типа  <xsl:value-of select="format-number(price, '### ##0,00', 'my')"/>
Есть ли глобальный вариант  убрать копейки? Поиск по строке ### ##0,00 выдаёт  100+ matches in 39 files.
Или придется ручками лезть в каждый файл и исаправлять шаблоны.
Массовая замена строки не получится так как сайт в работе и  локальная копия только для тестирования.  
Авторизация