繁体   English   中英

Dotnet XPathNavigator XPath评估不正确的结果

[英]Dotnet XPathNavigator XPath Evaluate Incorrect Result

我正在尝试评估xpath表达式,但结果不正确。 看一下下面的xml和表达式。 数学(对我而言)似乎计算结果应为:

500000 *(1 + -.80)

500000 *(.2)

我相信结果应该是100000(当我输入公式时,Excel会认为同一件事)。 当我评估xpath表达式时,我得到了(双精度:99999.999999999971)。 我知道有些人会告诉我将(1 + -.8)更改为(.2),但是这些计算已提供给我,我无法更改。 我挖得更深一些,评估(1-.8)给我0.19999999999999996。 这里发生了什么?

<editNode>    
  <cc_RCONB530 offset="0">500000</cc_RCONB530>  
</editNode>

editNode/cc_RCONB530[@offset='0'] *  (1 + -.80)

XPath 1.0规范以这种方式定义了XSLT / XPath 1.0数字类型 ,ECMAScript / Javascript具有相同的类型和相同的问题,只是对于某些值,没有有限且精确的二进制表示形式,与1/3相同。没有有限和精确的十进制表示形式。 如果可以,或者使用XSLT 1.0,请使用xs:decimal移至XSLT 2.0,然后确保在输出数字时调用format-number ,以确保将其舍入到所需的精度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM