2009-03-10 7 views
0

Je travaille sur une application Java, utilisez le type double pour économiser la valeur de unitprice, qty etc.J'ai trouvé certaines de ces valeurs montrent dans MSSQL sont NAN et jette erreur infinie quand j'essaye pour le réutiliser.C'est tellement déraisonnable, je peux l'enregistrer mais je ne peux plus l'utiliser! Je pense que la valeur NAN dans MSSQL doit être valide lors de sa première présence dans java, donc je peux enregistrer.Comment et quand ce problème se produit?NaN valeur dans le champ float dans MSSQL

Répondre

3

Vous devriez ne jamais utiliser le double ou flotter pour stocker les prix. Utilisez Decimal à la place. Les types de données Double et Float ne sont pas vraiment précis.

Les types de données FLOAT et REAL sont des types de données numériques approximatifs à utiliser avec des données numériques à virgule flottante. Les données à virgule flottante sont approximatives; toutes les valeurs de la plage de types de données ne peuvent pas être représentées avec précision.

1

Les valeurs NaN sont souvent le résultat d'une division par zéro - ce serait la première chose que je vérifierais.

Questions connexes