2010-08-13 10 views
2

Jamais besoin de le faire avant jusqu'à maintenant.Comment comparer une décimale avec une valeur codée en dur?

essayer de vous assurer que le chargeAmount (qui est de type décimal) ne va pas au-dessous de 1 cent:

if (chargeAmount < 0.01) 
       throw new ArgumentOutOfRangeException("chargeAmount"); 

J'ai essayé 0.01D mais il est évident que je ne suis pas sûr de savoir comment vous formatez cela.

+0

et j'avais essayé M – PositiveGuy

+0

j'ai modifié votre titre parce qu'il n'a pas représentez votre question du tout. – Stijn

Répondre

12

Vous voulez dire que vous voulez que ce soit un littéral décimal plutôt que le double?

if (chargeAmount < 0.01m) 
+0

ah merde. J'avais essayé 0.0M pas m (il est maintenant temps pour moi d'avoir honte) – PositiveGuy

+0

Hmm, M devrait fonctionner aussi. Peut-être que vous avez introduit une faute de frappe pendant que vous avez essayé celui-là (rien de pire que les fautes de frappe qui frappent sur la tentative qui était en fait correcte). –

3

A decimal literal ne pas utiliser D (qui est pour Double) - il utilise M (pour l'argent):

if (chargeAmount < 0.01M) 
    throw new ArgumentOutOfRangeException("chargeAmount"); 
+0

lol, vous avez fait ce que j'ai fait, c'est minuscule m :) – PositiveGuy

+2

@CoffeeAddict - pas si. À partir de la page MSDN: 'Si vous voulez qu'un littéral réel numérique soit traité comme décimal, utilisez le suffixe m ou M' – Oded

Questions connexes