1

我得到了一张包含以下数据的表格。

在此处输入图像描述

我需要做的就是查询计算 10% 的伤害,所以我做了以下事情:

 SELECT damage = (damage * 10) /100 
        ,[Peril_Code]
         FROM [LocExposure].[dbo].[myTable]

这将返回以下结果:

在此处输入图像描述

[Damage] 列是一个浮点数。

我无法弄清楚为什么它返回错误的计算。

4

2 回答 2

3

你的输出是正确的。没有错误。请检查2.44E-06您的实际值所在的结果2.44E-05

所以,没有错误。

更新:

为了避免科学记数法,您可以通过以下帖子

在没有科学计数法的情况下在 SQL Server 中将 float 转换为 varchar

于 2013-06-05T15:40:37.253 回答
1
DECLARE @Damage TABLE
(
        Damage      FLOAT,
        PerilCode   CHAR(1)
)
INSERT INTO @Damage VALUES
        (2.44253351044103E-05   , 'T'),
        (0.000125444785042888   , 'T'),
        (0.00015258112714104    , 'T'),
        (0.000238995871781784   , 'T'),
        (0.000267978447740977   , 'T')

SELECT  Damage, Damage * 0.1 [10%], PerilCode
FROM    @Damage 

输出

Damage                  10%                 PerilCode
---------------------------------------------------------
2,44253351044103E-05    2,44253351044103E-06    T
0,000125444785042888    1,25444785042888E-05    T
0,00015258112714104     1,5258112714104E-05     T
0,000238995871781784    2,38995871781784E-05    T
0,000267978447740977    2,67978447740977E-05    T
于 2013-06-05T15:46:29.740 回答