Sre*_*ree 5 c# rounding-error decimal
我无法在Sql Server表中插入十进制值.
我想要做的是通过这些代码行自我解释:
long fileSizeInBytes = ComponentUploadControl.FileContent.Length;
Decimal fileSizeInMB = Convert.ToDecimal(fileSizeInBytes) / (1024.0m * 1024.0m);
Decimal fileSizeInMBRounded = Math.Round(fileSizeInMB, 2);
cmd.Parameters.Add("@fileSize", SqlDbType.Decimal).Value = fileSizeInMBRounded;
Run Code Online (Sandbox Code Playgroud)
插入到数据库中的值将被删除小数位.更具体地说,如果fileSizeInMBRounded是11.73,则插入到数据库中的值是11,00
请帮我
谢谢你的期待
我怀疑你的十进制字段在SQL中设置错误.你想要的是一个decimal(18,2)允许2位小数的字段.我怀疑你将该字段声明为decimal(18,0)(默认值),不允许任何小数位.
如果您可以使用SQL Server Profiler来验证进入数据库的INSERT的内容,那么您可以更轻松地确定此类问题是由于您的代码还是SQL服务器上的某些问题.