2017-12-06 7 views
1

私は2つの整数を分けたい:8分の15と戻り値 "53.33"。小数点2桁すべてをキャストしますか?

私は、一つ一つの組み合わせを試してみた、と私は、これは私が所望の値を返すことができる唯一の方法であることを発見しました:

select cast(100*cast(8/cast(15 as decimal(10,4)) as decimal(18,4)) as decimal(18,2))

が短く方法はありますか?

ありがとうございました。

+1

'CAST(8 * 1.0/15 AS DECIMAL(10,2))'? – Lamak

+0

これを複数倍にするだけです。* 100 – squillman

答えて

1

。フロートを使用し、100

select 8/15.00 * 100 

それとも、あなたの精度のために掛ける、これらは、テーブルに1.0により、複数の整数であり、一度をキャストした場合だけ

一度
select cast(8/15.00 * 100 as decimal (10,2)) 

キャストを行います

DEMO

declare @table table (int_one int, int_two int) 
insert into @table 
values 
(8,15) 

select 
    cast(((int_one * 1.0)/int_two) * 100 as decimal(10,2)) 
from @table 
+0

ありがとうございます。私は "15.00"を持っていない、私は "15"を持っている。だから私は分母と結果をキャストする必要があります。 – rbhat

+0

あなたが2度キャストする必要のない編集@rbhatを見てください – scsimon

0

はこれを試してください:あなたはinterger分裂を行っている

select (cast (8 as money)/cast(15 as money) * 100) 
関連する問題