gpt4 book ai didi

xslt - XPath 输出 .07 * 100 * 100 作为 700.00000000000011 为什么?

转载 作者:行者123 更新时间:2023-12-03 15:26:10 25 4
gpt4 key购买 nike

我注意到了一些我无法理解的奇怪的精确行为,我有一些 XML:

<CLD>
<UCRV>
<UCR1>.07</UCR1>
</UCRV>
</CLD>

在 XSLT 文件中,我将值选择为便士(或看起来是 100 便士,我不知道为什么,但这是客户想要的!)为:
<xsl:value-of select="./s0:CLD/s0:UCRV/s0:UCR1/text() * 100 * 100"/>

但这是输出为 700.00000000000011 数据类型为 xsd:Decimal。这里有一些默认的精度吗?我可以简单地将数字四舍五入,但我只是想更好地理解它。

谢谢

最佳答案

浮点数不能精确地代表一切。由于数字以二进制形式存储,因此看起来很容易用十进制编写的数字有时实际上只能用二进制来处理。 0.07 就是这种情况,它在内部存储为 0.070000000000000011,就像您的情况一样。根据经验,您永远不应该相信浮点值,以便在不舍入的情况下直接比较它们。

关于xslt - XPath 输出 .07 * 100 * 100 作为 700.00000000000011 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12475564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com