1

この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.550000000000000040.55

  • Microsoftは、SQL Serverの新しいバージョンでFLOATの使用をより信頼できるものにしましたか?

御時間ありがとうございます。

4

1 に答える 1

1

私の個人的な黄金律は、フロートを避けることです。近年フロートを使っていたのが思い出せません。

私が最近取ったすべてのビジネスシナリオでは、通貨の値、または固定精度の数値を保存する必要があったため、DECIMALまたはを使用することを好みますMONEY

于 2009-12-02T10:00:25.333 に答える