【发布时间】:2012-08-13 07:34:03
【问题描述】:
我们在冰岛的生产数据库 (SQL Server 2008R2) 使用逗号 (,) 作为小数分隔符存储 sqlmoney 列值(示例 54,12 和 85,00)。我们的应用程序(C#,ASP.Net)使用 SqlDatareader 读取值,代码如下。
decimal testVal=dr.GetDecimal(idxAmountUSD)//IdxAmountUSD is sqlmoney value
现在它不考虑逗号(,)作为小数分隔符并返回为 5412 和 8500。
实际上它应该返回为 54.12 & 85.12。
【问题讨论】:
-
C# decimal separator? 的可能重复项
-
您没有使用
ToDecimal(建议使用Convert.ToDecimal),您使用的是GetDecimal。这不应该涉及任何字符串到十进制的转换,也不应该涉及任何小数分隔符。您的查询是什么样的?它返回一个十进制类型,还是一个字符串? -
sqlmoney 是 CLR 类型。 Db中实际列的定义是什么?
-
@FilipEkberg 不,不是重复,这不是显示小数,而是小数得到错误的值。
-
它应该返回十进制值。而数据库列类型是钱。
标签: c# ado.net type-conversion decimal