2010-11-23 37 views
2

J'ai une méthodeQuelle est la syntaxe à dire C# Je veux que mon nombre soit considéré comme un nombre décimal?

public void MyMethod(decimal val) 
{ 

} 

Je veux appeler cette méthode comme celui-ci

MyMethod (4.6)

et ce n'est pas heureux, sans doute, il pense 4,6 est un double, pas une décimale . Qu'est-ce qu'un moyen de l'obtenir de la reconnaître comme une décimale sans avoir à passer Convert.ToDecimal (4,6)

+0

Ou si vous ne vous aimez pas vraiment '(décimal) 4.6' –

+1

" et ce n'est pas heureux "- est ce que l'erreur du compilateur dit;) – Juliet

+0

Envisager de marquer une réponse comme" accepté ". –

Répondre

4

Vous devrez suffixe M ou m à la fin du littéral.

Par exemple:

decimal myValue = 70.5M; //70.5m 
double doubleValue = 98.99; 

Et tout en appelant, vous

MyMethod(myValue); 

En cas de double

MyMethod((decimal)doubleValue); //i.e you cannot suffix M to a non-literal 

MyMethod(doubleValueM); // Is wrong 
+0

Oh putain, 3 réponses en 10 secondes! ..ce fut une évidence je pense. –

+0

héhé je me suis dit que c'était plus rapide que de chercher dans google – Diskdrive

+0

Je ne pouvais pas croire à ma chance quand j'ai vu cette question en haut de la page, sans aucune réponse pour le moment! – Carson63000

1

Pour l'entrée décimale avec l'utilisation correcte de précision m ou M au fin de la valeur littérale

comme si vous devez passer 4.6 que d'utiliser 4.6m comme paramètre.