RavenDB:对象字段值随机舍入

问题描述 投票:1回答:1

首先,我想为有些含糊不清的问题标题道歉,但我真的不知道如何描述这个奇怪的问题。实际上,我在RavenDB中有一个文档存储,尽管尝试更改它,似乎有一些奇怪的约束导致它随机地将其舍入到不同的值。

最好通过我用它制作的这个gif来显示:Constantly Being Rounded?

在创建它的C#类中,它被存储为ulong,并且一切都在代码中,直到它被加载。此时我的ID不匹配。如您所见,文档名称是我要粘贴的ID,它们是匹配的;但是我被这个非常奇怪的故障击中了。

有没有人有想法?

c# ravendb ravendb-studio
1个回答
2
投票

潜在的问题在于JavaScript数字。所有的JS数字实际上都是double,这意味着它们适用于整数,直到2 ^ 53左右。除此之外,你开始失去精确度。

这里实际发生的是浏览器正在加载文档并将其保存回来。这通过JS引擎,导致数量的精度损失。只有在通过工作室更新文档时才会出现此问题。

在最新版本的RavenDB中,这将被检测到,您将收到警告:

Number too large warning

© www.soinside.com 2019 - 2024. All rights reserved.