2009-12-02 5 views
1

dans cet SO question l'OP voulait supprimer les 0 dans les décimales pour ses résultats. Maintenant, l'exemple que j'ai donné (ci-dessous) pour contourner cela était de CAST avec DECIMAL, puis CAST avec FLOAT.Comment les décimales sont convertis en utilisant FLOAT dans SQL Server 2000/2005/2008

par exemple. En utilisant l'exemple ci-dessus et en l'exécutant dans SQL Server 2005/2008, vous obtiendrez le résultat correct de 0,55. Mais comme Peter dans l'autre poste l'a souligné, l'exécuter dans SQL Server 2000 produit 0.55000000000000004.

Mes questions sont les suivantes:

  • est-FLOAT à éviter à tout prix en matière de conversion de données dans SQL?

  • Pourquoi est-ce cast(0.55 as float) rendements 0.55000000000000004 à SQL2K encore 0.55 à edtions plus tard?

  • Microsoft a-t-il rendu FLOAT plus fiable dans les versions ultérieures de SQL Server?

Merci pour votre temps.

+0

désolé kevchadders, mais quelle est votre question? –

+0

désolé de la confusion Rubens, j'espère que je l'ai fait plus clair. – kevchadders

+0

pour plus de clarté, l'exemple devrait simplement être: select cast (0.55 comme float), parce que la partie décimale n'a qu'à faire avec l'autre question – Peter

Répondre

1

Ma règle d'or personnelle est: éviter le flottement. Je ne me souviens pas d'avoir utilisé le flotteur ces dernières années.

Tous les scénarios d'affaires que j'ai pris récemment je devais stocker des valeurs de monnaie, ou même des nombres avec une précision fixe, donc je préfère utiliser DECIMAL ou MONEY.

+0

en tant que votre seul qui a posté une réponse Rubens vous obtenez la réponse acceptée. – kevchadders

+0

vous pouvez également le reformuler et ajouter une prime; –

+0

aussi, jetez un oeil ici: http://docs.sun.com/source/806-3568/ncg_goldberg.html –

Questions connexes