我需要在MySQL中存储小数,它可以有不同的精度。因此,我很想知道哪种MySQL字段类型绝对等同于。net的十进制结构,如果有的话。
我计划使用Dapper作为轻量级ORM。
.net的小数可以是不同的数据类型。
.net formats MySQL
----------------------------------------------------
Decimal(Double) Float
Decimal(Int32) DECIMAL
Decimal(Int32()) DECIMAL
Decimal(Int64) DECIMAL
Decimal(Single) DECIMAL
Decimal(UInt32) DECIMAL
Decimal(UInt64) DECIMAL
Decimal(Int32, Int32, Int32, Boolean, Byte) DECIMAL
//This is really a UINT96.
请注意,根据Jon Skeet的说法,decimal
可以以多种方式声明,但在引子下始终是FLOAT
,并且会带来所有舍入错误,您已经被警告过了。
参见:.NET中SQL的十进制等价
MySQL的DECIMAL
占用更多的空间,如果你给它分配一个更大的精度。
从手册:http://dev.mysql.com/doc/refman/5.5/en/precision-math-decimal-changes.html
MySQL 5.5中DECIMAL列的值使用二进制格式存储,该格式将9个十进制数字打包成4个字节。
最大位数为65,除以9 = 8字节,为INT128。