通过存储过程保存的.NET的货币值不正确(Sybase)

时间:2017-03-24 03:18:47

标签: .net c#-4.0 sybase-ase currency

我的.NET代码通过存储过程将十进制值插入数据库中的money列。存储过程接受此值作为money参数。我希望在插入之前将值四舍五入到小数点后四位。但是,某些值会按预期保存,而有些值会在不应该的情况下进行四舍五入。请参阅screenshot

有没有人知道为什么会这样?我已经阅读了关于转换为/从货币转换的Sybase ASE 15.7文档,并且它说的是它应该舍入(即如果下一个数字是0-4则保持数字,如果下一个数字是5-9则向上舍入)或round_to_even(如果选项已启用;它已在我的数据库中禁用),但这些并不能解释屏幕截图中发生的情况。另一个奇怪的事情是,有时它会正确地进行舍入,有时则不会,但我找不到一个模式(还有)。

我假设这与我们用于连接Sybase的驱动程序有关,因为直接运行存储过程不会导致同样的问题。我只是无法在线找到任何资源来支持这一假设

0 个答案:

没有答案