Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 29.10.2023 09:21 / 29.10.2023 09:54
Много лет пользуюсь методом:@format[number;format;locale;options][locals] # 1000.1 ru → 1 000,1 # 1000.1 en → 1,000.1 $formats[ $.en[#,###.##] $.ru[# ###,##] $._default[#,##] ] ^if(!def $locale){ $locale[ru] } ^if(!def $format){ $format[$formats.$locale] } ^if($number > 0 && ^options.sign.bool(false)){ $format[+$format] } $document[^xdoc::create{<?xml version="1.0" encoding="utf-8"?> <number> <value>$number</value> <format>$format</format> <locale>$locale</locale> </number>}] $template[^xdoc::create{<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:decimal-format name="ru" decimal-separator="," grouping-separator=" " NaN="—" minus-sign="−"/> <xsl:decimal-format name="en" decimal-separator="." grouping-separator="," NaN="–" minus-sign="−"/> <xsl:template match="/number"> <xsl:value-of select="format-number(value, format, locale)"/> </xsl:template> </xsl:stylesheet>}] $result[^document.transform[$template]] $result[^result.string[ $.method[text] $.indent[no] ]] $result[^result.replace[ ; ]] # examples ^format(…)[# ###,###] ^format(…)[# ###] ^format(…)[0,#] ^format(…)[;en] ^format(…)Избыточно, конечно, и для большого числа форматирований лучше не использовать, зато гибко.