عنصر <xsl:decimal-format> XSLT

تعریف و استفاده

عنصر <xsl:decimal-format> تعریف می‌کند که هنگام تبدیل اعداد به رشته‌ها با استفاده از توابع format-number()، از چه حروف و نمادهایی استفاده شود.

همه کشورها از یک نوع حرف برای جدا کردن بخش‌های اعداد اعشاری و کل استفاده نمی‌کنند یا برای گروه‌بندی اعداد استفاده نمی‌کنند. از طریق عنصر <xsl:decimal-format> می‌توانید نوع حرف را به جای دیگر نمادها تغییر دهید.

این عنصر یک عنصر سطح بالا (top level) است.

توابع format-number() می‌توانند از طریق نام (name) به عنصر <xsl:decimal-format> مراجعه شوند.

زبان ساختاری

<xsl:decimal-format
name="name"
decimal-separator="char" 
grouping-separator="char" 
infinity="string"
minus-sign="char"
NaN="string"
percent="char"
per-mille="char"
zero-digit="char"
digit="char"
pattern-separator="char"/>

property

property مقدار توضیحات
name name اختیاری. برای این فرمت نام تعیین شود.
decimal-separator char اختیاری. کاراکتر تعیین شده برای نشان دادن نقطه کوچک. پیش‌فرض "." است.
grouping-separator char اختیاری. کاراکتر تعیین شده برای جداکننده گروه‌بندی. پیش‌فرض "," است.
infinity string اختیاری. رشته‌ای که برای نشان دادن بی‌نهایت استفاده می‌شود. پیش‌فرض "Infinity" است.
minus-sign char اختیاری. کاراکتر تعیین شده برای نشان دادن عدد منفی. پیش‌فرض "-" است.
NaN string اختیاری. رشته‌ای که برای زمانی که مقدار عددی نیست استفاده می‌شود. پیش‌فرض "NaN" است.
percent char اختیاری. کاراکتر تعیین شده برای علامت درصد. پیش‌فرض "%" است.
per-mille char اختیاری. کاراکتر تعیین شده برای علامت صدها. پیش‌فرض "‰" است.
zero-digit char اختیاری. کاراکتر تعیین شده برای عدد 0. پیش‌فرض "0" است.
digit char اختیاری. کاراکتر تعیین شده، که برای نشان دادن مکان استفاده از عدد استفاده می‌شود. پیش‌فرض # است.
pattern-separator char. اختیاری. کاراکتر تعیین شده، که برای جدا کردن مدل فرمت استفاده می‌شود. پیش‌فرض ";" است.

مثال

مثال 1

مثال زیر نشان می‌دهد که چگونه به صورت ارز اروپایی قالب‌بندی می‌شود (لطفاً توجه داشته باشید که پارامتر سوم function format-number() به نام element <xsl:decimal-format> اشاره دارد):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:decimal-format name="euro" decimal-separator="," grouping-separator="."/>
<xsl:template match="/">
<xsl:value-of select="format-number(26825.8, '#.###,00', 'euro')"/>
</xsl:template>
</xsl:stylesheet>

خروجی:

26.825,80