c#与SQL中 double 与 float
执行GetFloat方法时总是提示转换错误,后来查看帮助手册发现:
数据库的字段:
类型:float 代表从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。(占用8字节)
类型:real 代表从 -3.40E + 38 到 3.40E + 38 之间的浮点数字数据。(占用4字节)而C#中:
double 表示一个值介于 -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字(8字节)float 表示一个值介于 -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字(4字节)
就是说数据库中没有double型,float就表示double值。
sql server数据库字段类型与.net的数据类型的对应关系:
real(数据库)<--> float(.NET)
float(数据库)<--> double(.NET)
读取数据库中的float类型的字段要使用GetDouble方法
读取数据库中的real类型的字段时才应该使用GetFloat方法