Какой синтаксис говорит C #, я хочу, чтобы мой номер считался десятичным? - PullRequest
2 голосов
/ 23 ноября 2010

У меня есть метод

public void MyMethod(decimal val)
{

}

Я хочу назвать этот метод следующим образом

MyMethod (4,6)

и это не радует, по-видимому, думает, что 4.6 - это двойное число, а не десятичное число. Какой способ заставить его распознавать его как десятичное без необходимости идти Convert.ToDecimal (4.6)

Ответы [ 4 ]

14 голосов
/ 23 ноября 2010

MyMethod(4.6m)

7 голосов
/ 23 ноября 2010

Используйте десятичные литералы: http://msdn.microsoft.com/en-us/library/364x0z75.aspx

decimal myMoney = 99.9m;
4 голосов
/ 23 ноября 2010

Вы должны будете суффикс M или m в конце литерала.

Например:

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

И во время вызова вы делаете

 MyMethod(myValue ); 

В случае двойных

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

MyMethod(doubleValueM);  // Is wrong
1 голос
/ 23 ноября 2010

Для десятичного ввода с правильной точностью используйте m или M в конце литерального значения

например, если вам нужно пройти 4.6, а не использовать 4.6m в качестве параметра.

...