このSOの質問では、OPは結果の小数点以下0桁を削除したいと考えていました。これを回避するために(以下で)示した例は、DECIMALを使用してCASTを実行し、次にFLOATを使用してCASTを実行することです。
例えば
SELECT CAST(0.55 AS FLOAT)
上記の例を使用してSQLServer2005/2008で実行すると、0.55という正しい結果が得られるように見えます。しかし、他の投稿でPeterが指摘したように、SQLServer2000で実行すると0.55000000000000004が生成されます。
だから私の質問は:
SQLでのデータ変換に関して、FLOATは絶対に避けなければなりませんか?
なぜSQL2kでまだ後の版で
cast(0.55 as float)
利回りが出るのですか?0.55000000000000004
0.55
Microsoftは、SQL Serverの新しいバージョンでFLOATの使用をより信頼できるものにしましたか?
御時間ありがとうございます。