XSLT - 四舍五入到小数点后两位
Posted
技术标签:
【中文标题】XSLT - 四舍五入到小数点后两位【英文标题】:XSLT - Round up to two decimal places 【发布时间】:2022-01-02 05:41:25 【问题描述】:需要将值向上(始终)四舍五入到小数点后两位。意思是,数字 8.3333333 应该变成 8.34。 Round 和 format-number 函数似乎无法实现这一点。请问有人知道如何使用 xslt 转换获得所需的输出吗?
【问题讨论】:
8.3
或 8.30
会发生什么?
【参考方案1】:
将数字四舍五入,精确到小数点后两位:
ceiling(100*$value) div 100
如果您需要尾随零(即 字符串,而不是 数字),请将其包装在 format number()
中。
【讨论】:
在某些极端情况下,使用xs:decimal
比使用xs:double
算法更安全:ceiling(100*xs:decimal($value)) div 100
。我不确定这一点,但小数感觉更可靠。以上是关于XSLT - 四舍五入到小数点后两位的主要内容,如果未能解决你的问题,请参考以下文章