我正在研究一个传统的ASP应用程序.我试图将值(40.33)插入到SQL Server 2000中恰好是浮点类型的字段中.我在应用程序中看到的每个地方(通过一些日志记录)都会向存储过程发送40.33.当我在调用时对数据库运行SQL事件探查器时,我在跟踪中看到的值是4.033000183105469e + 001
所有额外的垃圾来自哪里(183105469)?
为什么当我通过40或40.25时没有什么额外的?
这只是使用float的奇怪副作用之一吗?当我写一些东西时,我通常使用金钱或小数或其他东西,所以不熟悉float数据类型.
是的,这是一个奇怪的,虽然众所周知的使用FLOAT的副作用.
在Microsoft SQL Server中,如果需要具有缩放的精确数字,则应使用精确数值数据类型,如NUMERIC,DECIMAL,MONEY或SMALLMONEY.
不要使用FLOAT.