我使用 Fluent NHibernate 作为我的 ORM,当我执行它时,NH Profiler 向我抛出了这个 sql 查询
INSERT INTO [Location]
(Name,
Lat,
Lon)
VALUES ('my address' /* @p0 */,
-58.37538459999996 /* @p1 */,
-34.5969468 /* @p2 */);
顺便说一句,这是绝对正确的。这是我的位置表的设计:
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](255) NULL,
[Lat] [decimal](23, 20) NULL,
[Lon] [decimal](23, 20) NULL,
但是当我在sqlserver management studio中看到插入的数据时,我可以看到它已插入
-58.37538000000000000000 而不是 -58.37538459999996000000 和
-34.59694000000000000000 而不是 -34.59694680000000000000。
当我手动执行此插入查询时,它会正确插入值(Lat 列的 14 位小数),但如果 nhibernate 这样做,它只会插入 5 位小数。
有任何想法吗???