2015-09-19 3 views
1

i haved выглядел повсеместно! Клянусь! im, пытаясь получить мой вывод для отображения как «$», так и двух десятичных знаков справа от периода. Им с помощью C#дисплей как знак доллара, так и два десятичных знака

//declare variable 
       decimal decInputDays; 
       decimal decInputAmountofBooks; 
       decimal decOutputAmountofFine; 

       decimal FINE_CALCULATE = .05m; 

       //get values from the form 
       decInputDays = decimal.Parse(txtDays.Text); 
       decInputAmountofBooks = decimal.Parse(txtBooks.Text); 


       //determine fine amount 
       decOutputAmountofFine = decInputDays * decInputAmountofBooks * FINE_CALCULATE; 
       //display fine amount 

       lblAmount.Text = decOutputAmountofFine.ToString("c"); 
+0

извините, им с помощью C# – ntrnlerror9

ответ

0

Вам нужны

decimalVal.ToString("C2") 
+0

пытался что .... до сих пор ничего не моя последняя линия lblAmount.Text = decOutputAmountofFine.ToString («C2»); и он ничего не менял на дисплее – ntrnlerror9

0

Формат точного вывода будет зависеть от текущего выбора культуры на компьютере этого времени запуска, но ToString("C") должен производить выход с символом валюты, разделители тысяч, где это требуется плюс два десятичных знака. Вы можете указать число, если вам нужно больше или меньше десятичных цифр, но по умолчанию две цифры являются наиболее распространенными.

Если все остальное терпит неудачу, вы должны быть в состоянии заставить формат так:

lblAmount.Text = string.Format("${0:#,0.00}", decOutputAmountofFine); 

Или, если вы используете C# версии 6 (VS2015):

lblAmount.Text = $"${decOutputAmountofFine:#,0.00}"; 

Обратите внимание, что #, является спецификатор «insert ths separator» и все еще может быть затронут локализацией ... но я не знаю ни одной локали, которая использует любое значение, отличное от 3 для расстояния разделителя (System.Globalization.NumberFormatInfo.CurrencyGroupSizes). Проверьте значения в System.Globalization.CultureInfo.CurrentCulture.NumberFormat, чтобы узнать, что настроено для вашего местоположения.

0

Вы не указали, каков ваш текущий результат. Но что бы это ни было, похоже, что ваша проблема связана с культурой.

Рассмотрите возможность превращения культуры в en-US. Это должно дать вам формат валюты, которую вы ищете:

decOutputAmountofFine.ToString("c", CultureInfo.GetCultureInfo("en-US")); 
Смежные вопросы