回答:
これを試して
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Str()
関数を使用します。これは、3つの引数(数値、表示する合計文字数、および表示する小数点以下の桁数)を取ります
Select Str(12345.6789, 12, 3)
表示: '12345.679'(3つのスペース、5桁の12345、小数点、および3つの小数点(679)-切り捨てが必要な場合は丸めます(整数部分が合計サイズに対して大きすぎる場合を除く)。代わりにアスタリスクが表示されます。)
合計が12文字で、小数点の右側が3文字です。
it rounds if it has to truncate
...整数部分が合計サイズに対して大きすぎる場合を除き、代わりにアスタリスクが表示されます。これはのドキュメントにSTR
記載されています。ここでは、そのページからの引用です:STR(1223,2) truncates the result set to **.
一般に、パラメーターで定義することにより、SQLで数値の精度を定義できます。ほとんどの場合、これはNUMERIC(10,2)
またDecimal(10,2)
はであり、列を、精度が2(小数点以下の桁数)の合計10桁の数値として定義します。
明確にするために編集
これは私にとってはうまくいき、常に2桁の小数を保持します
23.1 ==> 23.10
25.569 ==> 25.56
1 ==> 1.00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
これが今日の子供たちのやり方です。
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123.46
DECLARE @test DECIMAL(18,6) = 0.456789
その後、SELECT FORMAT(@test, '##.##')
戻っ: .46
どのようにそれは、先行ゼロを表示するのですか: 0.46
?
これを試して:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount