2012-03-17 7 views
14

Mam problem techniczny z wykorzystaniem procentu w metodzie StringFormat.Procent w StringFormat

Wynik String.Format("{0:P}", 0.8526) jest 85.26%

ale myślę, że powinno być 0.8526%

Czy jest to prawidłowe? Jeśli tak, jak mogę uzyskać 0.8526%?

+4

String.Format ("{0}%", 0,8526) – Steve

Odpowiedz

17

Console.WriteLine(string.Format("{0}%", 0.8526));

12

Tak matematycznie 0,8526 równa się 85,26%. Jeśli chcesz poznać 0.8526% następnie spróbuj tego

String.Format("{0:P}", 0.8526/100) 
+0

chcę użyć DataFormatString w siatce. jak mogę dokonać podziału tam? – Mironline

+0

W twoim przypadku nie musisz nawet dzielić. jeśli potrzebujesz '0.8526' jako' 0.8526% ', to dlaczego nie dodasz'% 'do liczby? '" 0,8526% "= 0,8526.ToString() +"% "'. czy to pomaga? – Kaf

+4

-1 Dlaczego dzielić i mnożyć przez tę samą kwotę? Po prostu wypisz {0}% –

2

String.Format będzie pomnożyć przez 100, gdy używasz% lub: p String.Format należy podzielić przez 100, pierwszy, jeśli chcesz, aby dostać to, czego szukasz.

+3

-1 Po co dzielić i mnożyć przez tę samą kwotę? Po prostu wypisz {0}% –

+6

@Chris, ponieważ String.Format weźmie pod uwagę obecne zasady kultury dotyczące formatowania wartości procentowej, podczas gdy {0}% jest zakodowane zgodnie ze standardem US-EN. –

+0

To trochę trudne do przypisania do konkretnej kultury, ale nie do końca. Podwójne zostanie sformatowane niejawnie przy użyciu specyfikatora formatu G. Całkowicie ignorując symbol procentu, specyfikator formatu G formatuje liczby inaczej niż P, głównie w liczbie miejsc dziesiętnych pokazanych domyślnie. Powinieneś po prostu przeczytać o G i P na https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx. – user1676558

2

Odsetek jest brany pod uwagę od 0-100%, a liczba zmiennoprzecinkowa z 0,0-1,0, ponieważ jest to stosunek dwóch liczb.