Azure DocumentDB 十进制截断

Azure DocumentDB Decimal Truncation

我目前正在使用 Azure DocumentDB 来存储带有价格的产品数据。几乎一切都运行良好,但现在我遇到了一个问题,即从 DocumentDB 读取时我的小数位 (System.Decimal) 被截断了。
比如这个价格:

Input Price: 25.1132356547854257645454

将被截断为

DocumentDB Price: 25.113235654785

由于我们使用同步机制来查找价格变化,这将导致价格变化,因为它不再是同一个价格。
我不知道如何更改 DocumentDB 的行为。在最坏的情况下,我将不得不截断我的输入价格以防止出现此问题,但我宁愿不这样做。

感谢您的帮助。

Azure DocumentDB 根据 JSON 标准使用 IEEE floating point numbers。这是必需的,以便数据可以跨不同的编程平台和应用程序移植。不幸的是,这可能会导致截断大整数或更高精度的小数,如您所见。

要解决此问题,请考虑将数字分成两部分,如果您仅用于相等,则表示为字符串,或者存储截断的表示形式。

希望对您有所帮助。