您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

c# float 类型传入 sql server float 参数导致结果错误

bubuko 2022/1/25 18:56:28 dotnet 字数 1048 阅读 1001 来源 http://www.bubuko.com/infolist-5-1.html

今天编码发现 c# 传 float 1.03 到 SQL SERVER 2008 float 参数类型,用 SQL Server Profiler 查看,变成了?1.0299999713897705 以前以为有效数字位数超了,或者小数位数超出了最大表示范围才会出现,这次算是长见识了。 原因:SQL ...

今天编码发现 c# 传 float 1.03 到 SQL SERVER 2008 float 参数类型,用 SQL Server Profiler 查看,变成了 1.0299999713897705

以前以为有效数字位数超了,或者小数位数超出了最大表示范围才会出现,这次算是长见识了。

原因:SQL Server 的 float 类型对应 c# 的 double 类型, float 强转 double 类型是不行的,会造成数据丢失或结果错误

写个段c#代码验证:

void Main()
{
    float a = 1.03F;
    double b = a;
    b.Dump();
}

果然:

1.02999997138977

c# float 类型传入 sql server float 参数导致结果错误

原文:https://www.cnblogs.com/nanfei/p/15199028.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶