自動車の排気量ccをリットル(車検証記載の方式でccの1の位は切り捨てする条件)に変えるSQL文を作成していましたが、お客様からおかしいと指摘を受け、調べてみると不可解な現象に悩んでしまいました。おバカな質問かもしれませんが宜しくお願いします。
前提・実現したいこと
自動車の排気量ccをリットル(車検証記載の方式でccの1の位は切り捨てする条件)に変えるSQL文を作成していましたが、お客様から間違ってると指摘を受け、調べてみると不可解な現象に悩んでしまいました。おバカな質問かもしれませんが宜しくお願いします。
求めている結果は以下の通りなのですが、
軽自動車 658cc → 0.65L
普通車A 2990cc → 2.99L
普通車B 3630cc → 3.63L
自分が作成したSQL文
SELECT round([排気量cc]/1000,2,1) from [車両データテーブル]
を実行すると なぜだか普通車Bの結果が3.62となってしまいます。
SELECT round([排気量cc],-1,1)/1000とすると3.63となるのですが原因が分からなくてもやもやしています。
ちなみに[排気量cc]カラムはfloatです。
発生している問題・エラーメッセージ
SELECT round(3630/1000,2,1) の結果が3.62
該当のソースコード
SQLSERVER
1SELECT round([排気量cc]/1000,2,1) from [車両データテーブル] 2 3以下だと計算結果が正しくなる 4SELECT round([排気量cc],-1,1)/1000 from [車両データテーブル] 5
試したこと
問題を解決する為に以下のSQL文を実行
SELECT [排気量cc],
round([排気量cc]/1000,2,1) ,
round([排気量cc],-1,1)/1000 from [車両データテーブル]
結果
658 0.65 0.65
2990 2.99 2.99
3630 3.62 3.63
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/27 06:44
2018/02/28 03:42
退会済みユーザー
2018/02/28 04:28