gpt4 book ai didi

NHibernate 3.0 将小数四舍五入到小数点后 5 位 - 为什么?

转载 作者:行者123 更新时间:2023-12-03 16:38:34 25 4
gpt4 key购买 nike

全部,

我们使用的是 NHiberate 2.1,我们在其中存储十进制值(汇率),例如123.1234567 到 7 个小数位

我们使用默认映射样式映射类型:

<property name="ExchangeRate"  not-null="true" />

然而,当我们升级到 NHibernate 3.0 时,上面的值被保存为 123.1234500。

它没有在 3.0 发行说明中指定这种行为变化,尽管它似乎在问题 [NH-1594] 中详细说明了十进制的默认值是 DECIMAL(19,5)

我们有一个解决方案,即指定以下映射:
<property name="ExchangeRate"  type="decimal(10,7) not-null="true" />

我需要知道这个解决方案是解决这个问题的正确方法吗?
另外,为什么在 2.1 和 3.0 之间舍入时行为会发生功能性变化?

干杯,

比利·斯塔克

最佳答案

这是有效的,但这是更清洁的 IMO:

<property name="ExchangeRate" precision="10" scale="7" />

属性类型隐含了非空小数。

关于NHibernate 3.0 将小数四舍五入到小数点后 5 位 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243486/

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