Ondalık yüzde değerleri için biçimlendirilsin mi?


206

Ne istiyorum böyle bir şey:

String.Format("Value: {0:%%}.", 0.8526)

%% bu biçim sağlayıcısı veya aradığım her şey. Neden olmalı: Value: %85.26..

Temelde wpf bağlama için ihtiyacım var, ama önce genel biçimlendirme sorununu çözelim:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />

Yanıtlar:



11

Kültüre bağlı biçimlendirmeyi bir kenara bırakmak ve değer ile "%" arasında boşluk olup olmadığı ve "%" öğesinin önde mi yoksa arkada mı olduğu konusunda açık bir denetim elde etmek için iyi bir nedeniniz varsa, NumberFormatInfo's PercentPositivePattern ve PercentNegativePattern özellikleri.

Örneğin, sondaki "%" ile ondalık bir değer elde etmek ve değer ile "%" arasında boşluk olmamak için:

myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });

Daha eksiksiz bir örnek:

using System.Globalization; 

...

decimal myValue = -0.123m;
NumberFormatInfo percentageFormat = new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 };
string formattedValue = myValue.ToString("P2", percentageFormat); // "-12.30%" (in en-us)

3

Numarayı girişiniz gibi tutmanıza izin veren bir biçim kullanmak istiyorsanız bu biçim benim için çalışır: "# \\%"


2

Bu kod size yardımcı olabilir:

double d = double.Parse(input_value);
string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";

-8

Yukarıdaki cevabı en iyi çözüm olarak buldum, ancak yüzde işaretinden önce önde gelen alanı sevmiyorum. Biraz karmaşık çözümler gördüm, ancak sadece yukarıdaki yuvarlama ekini diğer yuvarlama çözümlerini kullanmak yerine kullanıyorum.

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)

Ve yine de yanlış, bu girişi zorlamak istiyorsanız, sayıyı kayan nokta olarak koyabilir ve yüzde işaretini ekleyebilirsiniz, çünkü değiştirme maliyetlidir ve bu durumda çok yararlı değildir "String.Format (" Değer: {0: F2} . ", 0.8526 * 100)"
rekiem87
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.