【问题标题】:XSLT - Round up to two decimal placesXSLT - 四舍五入到小数点后两位
【发布时间】:2022-01-02 05:41:25
【问题描述】:

需要将值向上(始终)四舍五入到小数点后两位。意思是,数字 8.3333333 应该变成 8.34。 Round 和 format-number 函数似乎无法实现这一点。请问有人知道如何使用 xslt 转换获得所需的输出吗?

【问题讨论】:

  • 8.38.30 会发生什么?

标签: xslt xslt-2.0


【解决方案1】:

将数字四舍五入,精确到小数点后两位:

ceiling(100*$value) div 100

如果您需要尾随零(即 字符串,而不是 数字),请将其包装在 format number() 中。

【讨论】:

  • 在某些极端情况下,使用xs:decimal 比使用xs:double 算法更安全:ceiling(100*xs:decimal($value)) div 100。我不确定这一点,但小数感觉更可靠。
猜你喜欢
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
相关资源
最近更新 更多