2013-05-17 5 views
2

В моем приложении определенные поля содержат десятичные числа. И можно ввести только 2 десятичные точки. После выполнения некоторых вычислений результат отображается, и ответ также должен содержать 2 десятичных знака. Для этого я использовал код ниже: -Как округлить десятичные значения, используя Math.Round, но сохраняйте конечные нули

obj.Revenue = 0.00m; 

obj.Revenue = Math.Round(Convert.ToDecimal(obj.Revenue), 2); 

[EDIT]

Внутренний вид: -

@Html.TextBoxFor(model => model.Revenue, new { @id = "txtRevenue", @readonly = "readonly", @class = "decimalField" }) 

Так что 300,00 должно отображаться в качестве ответа. Но я получил 300. Как я могу это решить?

+0

http://stackoverflow.com/questions/164926/c-sharp-how-do-i-round-a-decimal-value-to-2-decimal-places-for- output-on-a-pa –

+0

Как вы отображаете это значение в представлении? –

+0

@OlegIgnatov: -pls см. Редактировать – Mizbella

ответ

0

Использовать toFixed (n);

var d = 300.00; 
alert(d.toFixed(2)); 
0

Использование toFixed функции()

Например:

(12.5).toFixed(2); // 12.50 
+0

Получил ошибку, подобную этой: - «decimal» не содержит определения для «toFixed» и не используется метод расширения «toFixed», принимающий первый аргумент типа «decimal». – Mizbella

+0

@Mizbella попробуйте следующее: string test = String. Формат («{0: 0.00}», 300); var convert = Convert.ToDecimal (test); –

+0

@ David Rego: -это преобразование в десятичный .00 теряется – Mizbella

0

Попробуйте это:

@Html.TextBoxFor(model => model.Revenue, new {value = Model.Revenue.ToString("#.##"), @id = "txtRevenue", @readonly = "readonly", @class = "decimalField" }) 
+0

Это не сработает, потому что шаблоны могут использоваться со свойствами с помощью как get, так и set accessors. –

+0

Я только что обновил это ... Я не использовал правильный формат для изменения значения. –

0

Вы должны реализовать ПОЛУЧИТЬ аксессор для свойства model.Revenue этот путь :

get{ return _revenue.ToString("#.##"); } 
1

Я знаю, что слишком поздно ответить на этот вопрос, но это может помочь другому.

Вы можете просто написать эту строку в своей модели, где вы объявили свойство. [DisplayFormat(DataFormatString = "{0:0.###}")]

вот практический пример, который я использовал в своем коде.

[DisplayFormat(DataFormatString = "{0:0.##}")] 
    public Decimal CreditLimit { get; set; } 

это установит значение до двух десятичных знаков.

, например. 3,3333333 => 3,33