【发布时间】:2022-01-02 05:41:25
【问题描述】:
需要将值向上(始终)四舍五入到小数点后两位。意思是,数字 8.3333333 应该变成 8.34。 Round 和 format-number 函数似乎无法实现这一点。请问有人知道如何使用 xslt 转换获得所需的输出吗?
【问题讨论】:
-
8.3或8.30会发生什么?
需要将值向上(始终)四舍五入到小数点后两位。意思是,数字 8.3333333 应该变成 8.34。 Round 和 format-number 函数似乎无法实现这一点。请问有人知道如何使用 xslt 转换获得所需的输出吗?
【问题讨论】:
8.3 或 8.30 会发生什么?
将数字四舍五入,精确到小数点后两位:
ceiling(100*$value) div 100
如果您需要尾随零(即 字符串,而不是 数字),请将其包装在 format number() 中。
【讨论】:
xs:decimal 比使用xs:double 算法更安全:ceiling(100*xs:decimal($value)) div 100。我不确定这一点,但小数感觉更可靠。