c#对象浮点字段与数据库对象浮点字段不同

ara*_*een 1 c# sql-server floating-point

使用 c# mvc4 和 mssql 我有一个对象,它有一个浮点字段,现在当我在数据库中查看它时,浮点值是2.014112E+17但是当我在我的代码中获取对象时,它变成2.01411186E+17。为什么服务器中的对象和数据库中的对象不同?我之间没有发生任何转换,只是从数据库中读取一个对象。谢谢

编辑:我使用这个浮点数作为时间戳来同步我的一些数据与另一个数据库,这个问题导致了我一些问题,有没有办法获得准确的值或将其存储为浮点数是一个错误的想法首先?

use*_*620 5

由于其实施,浮动仅在一定程度上准确。为准确起见,请使用Decimal.

.NET 中小数、浮点数和双精度数之间的区别?

float 和 double 是浮点二进制小数点类型。换句话说,它们代表一个这样的数字:

10001.10010110011

二进制数和二进制小数点的位置都在值中编码。

十进制是浮点小数点类型。换句话说,它们代表一个这样的数字:

12345.65789

编辑:您还可以尝试将时间戳保存为 unix 时间戳,这只是自 1970-01-01 以来的秒数。它可能更适合您的需求