1

私は現在、ストアド プロシージャを学習しており、2 つの数値を自分の sp. 私が直面している問題は、データ型の変換とデータの損失です。私は自分の手順を次のように定義しています。

create proc addn(@a float, @b float)
as
begin
declare @sum varchar
set @sum=cast((@a+@b) as varchar)
print 'the sum of '+cast(@a as varchar)+' and '+cast(@b as varchar)+' is ' cast((@a+@b) as varchar)
print @sum
end

プロシージャは次のように呼び出されます。

declare @a1 float, @b1 float
set @a1=41
set @b1=6.2
exec addn @a1,@b1

私が得ている結果は次のとおりです。

the sum of 41 and 6.2 is 47.2
4

@sum でなぜ 4 しか得られないのか理解できません。実行された加算の結果の最初の桁のみを格納しています。助けてください!

4

1 に答える 1