XSLT:显示尾随零

Posted

技术标签:

【中文标题】XSLT:显示尾随零【英文标题】:XSLT: SHOW trailing zeros 【发布时间】:2012-11-26 16:10:53 【问题描述】:

我在 XSD 中定义了一个十进制变量,例如可以包含值 1,5; 1,50; 1,550; 1,500; ...因此,它可以有未知的小数位数,甚至由零组成。 现在我已经编写了一个 XSLT (2.0) 并将使用 Saxon 执行。

问题是我想在 XML 中“按原样”显示值,唯一的区别是我想使用正确的、依赖于语言的小数分隔符。

format-number 选项只允许我使用字符(# 或 0),无论是删除尾随零,还是在后一种情况下“硬编码”零的数量......

是否有任何可用选项允许我做我需要的事情,而无需回退到小数分隔符的字符串替换,因为我觉得这将是格式数字功能的严重不足?

【问题讨论】:

【参考方案1】:

编写一个函数来为您创建格式数字格式,该格式会考虑原始值中使用的小数位数。

format-number(., concat('###,###.', substring('0000000000000', 1, concat(string-length(substring-after(., ','))))), euro)

对语言依赖格式使用十进制格式:

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

【讨论】:

以上是关于XSLT:显示尾随零的主要内容,如果未能解决你的问题,请参考以下文章

十进制数据类型在需要显示时去除尾随零

在python中以十进制数字显示尾随零而不返回字符串

截断尾随零 datagridview 列

NSNumberFormatter 千位分隔符和尾随零

XSLT 删除所有属性的前导和尾随空格

数字字段项的格式掩码:尾随和“前导”零