需要 XSLT 总和和舍入语法帮助



我正在尝试在我的 xslt 主体中拉动和汇总每个人的小时数,然后在预告片中对小时数求和。 预告片总和和正文总和不匹配,它们相差 .01(由于我假设四舍五入? 我不确定正确的语法应该是什么才能使两个部分等于相同的小时总和。 我已经搜索过,但找不到我要找的东西,任何帮助或指导不胜感激!

这是我的身体 xslt - 这返回 37420050 = 374,200.50:

模板匹配="WD:Report_Data/WD:Report_Entry">

xsl:value-of select="format-number(sum(wd:Payroll_Results/wd:Period_Creditable_Hours( * 100,

'0000000000;-000000000'("这是我的预告片 xslt - 总共返回 37420049 - 374,200.49:

xsl:value-of select="format-number(sum(wd:Report_Data/wd:Report_Entry/wd:Payroll_Results/wd:Period_Creditable_Hours( * 100,

'0000000000;-000000000'("谢谢 詹恩

在 XSLT 2.0 中,您可以选择使用十进制算术而不是浮点运算。这在 XSLT 1.0 中是不可能的。要使用十进制算术,将乘法的操作数转换为xs:decimal,例如

sum(wd:Payroll_Results/wd:Period_Creditable_Hours)/xs:decimal() * 100) 

即使使用十进制算术,format-number()函数也可能会进行一些舍入,这可能导致数字的总和不等于 100%。您可能需要检查是否有约定或会计法规来限制您解决此问题的方式。

最新更新