我想将浮点数存储到sql数据库中,但是当我尝试存储数据库时,asp.net代码会将原始数字转换为其他数据。 例如)如果我在文本框中提供 1.1 ,那么它将存储在数据库中 1.1000000238418579
当我拖动程序时,会创建以下类。
[global::System.Data.Linq.Mapping.ParameterAttribute(Name="ServiceFee", DbType="Float")] System.Nullable<double> serviceFee,
SQL列数据类型
serviceType float;
答案 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