如何将浮点数存储到asp.net的sql数据库中?

时间:2015-09-07 08:47:23

标签: c# asp.net sql-server

我想将浮点数存储到sql数据库中,但是当我尝试存储数据库时,asp.net代码会将原始数字转换为其他数据。 例如)如果我在文本框中提供 1.1 ,那么它将存储在数据库中 1.1000000238418579

当我拖动程序时,会创建以下类。

[global::System.Data.Linq.Mapping.ParameterAttribute(Name="ServiceFee", DbType="Float")] System.Nullable<double> serviceFee,

SQL列数据类型

   serviceType  float;

2 个答案:

答案 0 :(得分:2)

单精度浮点中1.1的最接近的表示是:

0 01111111 00011001100110011001101

小数点是

1 * 2^(127-127) *(1 + (1 / 16 + 1 / 32 + 1 / 256 + 1 / 512 + 1 / 4096 + 1 / 8192 + 1 / 65536 + 1 / 131072 + 1 / 1048576 + 1 / 2097152 + 1 / 8388608))= 1.10000002384185791015625

如果你真的&#34;想要存储1.1,你必须使用小数。

答案 1 :(得分:1)

  

使用十进制数据类型存储数据时带小数的数字   值必须严格按照指定的方式存储。

https://msdn.microsoft.com/en-us/library/ms187912(v=sql.105).aspx