如何从asp.net中存储浮点数到SQL数据库

本文关键字:浮点数 SQL 数据库 存储 asp net | 更新日期: 2023-09-27 18:11:35

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

当我拖动过程时,创建了以下类。

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

SQL列类型

   serviceType  float;

如何从asp.net中存储浮点数到SQL数据库

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

如果你"真的"想要存储1.1,你必须使用十进制。

使用decimal数据类型来存储带有小数的数字值必须完全按照指定存储。

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