2017-08-21 8 views
-1

(money/int)*100floatのデータ型に変換するにはどうすればよいですか?T-SQL:金額を浮動小数点に変換する

a.ResidualValueは、タイプmoneyであり、ListPriceCarは、タイプintである。

次は、小数点区切りとしてカンマで番号を出力するので、私が望むように私はそれがまだmoneyフィールドで推定し、そしてませんfloat

CONVERT(float, CONVERT(float, REPLACE(CONVERT(nvarchar(10), a.ResidualValue), ',', '.'))/ListPriceCar)*100 AS 'Residual value %' 

結果:62825

+0

、期待と実際の結果と、私たちにいくつかのサンプルデータをご提示ください。 –

答えて

0

何を

DECLARE @money AS money 
SET @money = $2345234.35 
SELECT @money, CAST(@money AS float) 
0

ResidualValueの値は次のとおりです。 ResidualValueにコンマが含まれている場合、コンマは小数点以下の文字です。それをポイントに変換するべきではありません。金額をint値で割ることができます。

declare @a money = 10.5; 
declare @b int = 20; 

select (@a/@b) * 100 
select cast((@a/@b) * 100 as float) 
0

例では、結果は既に浮動小数点数として与えられています。これをテストするには、次のサンプルコードを実行します。

--INPUT VARIABLES 
declare @ResidualValue money = 5000.54 
declare @ListPriceCar int = 15000 
--OUTPUT VARIABLE 
declare @ResultCalculation as sql_variant; 
--CALCULATION 
set @ResultCalculation = CONVERT(float, CONVERT(float, REPLACE(CONVERT(nvarchar(10), @ResidualValue), ',', '.'))/@ListPriceCar)*100 
--GET INFORMATION ON THE OUTPUT VARIABLE 
select sql_variant_property(@ResultCalculation,'BaseType') AS 'Base Type', 
     sql_variant_property(@ResultCalculation,'Precision') AS 'Precision', 
     sql_variant_property(@ResultCalculation,'Scale') AS 'Scale', 
     sql_variant_property(@ResultCalculation,'TotalBytes') AS 'TotalBytes', 
     sql_variant_property(@ResultCalculation,'Collation') AS 'Collation', 
     sql_variant_property(@ResultCalculation,'MaxLength') AS 'MaxLength'; 

enter image description here

あなたの答えを計算する簡単な方法があります:

CAST(@ResidualValue/@ListPriceCar * 100 as float) 
関連する問題