我目前正在使用 Azure DocumentDB 来存储带有价格的产品数据。几乎一切都工作得很好,但现在我遇到了一个问题,即从 DocumentDB 读取时我的小数 (System.Decimal) 被截断。
比如这个价格:
Input Price: 25.1132356547854257645454
将被截断为
DocumentDB Price: 25.113235654785
由于我们使用同步机制来查找价格变化,这将导致价格变化,因为它不再是相同的价格。
我不知道如何改变 DocumentDB 的行为。在最坏的情况下,我将不得不截断我的投入价格以防止出现此问题,但我宁愿不这样做。
感谢帮助。
Azure DocumentDB 使用IEEE 浮点数 http://en.wikipedia.org/wiki/IEEE_floating_point根据 JSON 标准。这是必需的,以便数据可以跨不同的编程平台和应用程序移植。不幸的是,这可能会导致大整数或更高精度的十进制数被截断,就像您所看到的那样。
要解决此问题,请考虑将数字分解为两部分数字,如果您仅用于相等,则表示为字符串,或者存储截断的表示形式。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)