使用列值计算百分比

时间:2013-06-05 15:34:43

标签: sql sql-server-2008 tsql

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

enter image description here

所有我需要做的是查询计算10%的伤害所以我已经完成了以下操作:

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

并返回以下结果:

enter image description here

[Damage]列是一个浮点数。

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

2 个答案:

答案 0 :(得分:3)

您的输出是正确的。没错。请检查结果2.44E-06,其中您的实际值为2.44E-05

所以,没有错误。

<强>更新

为避免科学记数法,您可以阅读以下文章

convert float into varchar in SQL server without scientific notation

答案 1 :(得分: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