w języku C#, Mam podwójną zmienną cenę o wartości 10215.24. Chcę pokazać cenę za pomocą przecinka po kilku cyfrach. My spodziewać wyjście jest 10,215.24C#: Formatowanie łańcucha wartości ceny
Odpowiedz
myPrice.ToString("N2");
w zależności od tego, co chcesz, możesz też zostać wyświetlony symbol waluta:
myPrice.ToString("C2");
(numer znajdujący się po C lub N wskazuje ile dziesiętne powinny być używane). (C formatuje liczbę jako ciąg waluty, który zawiera symbol waluty)
Aby być całkowicie poprawnym politycznie, można również określić CultureInfo, które należy zastosować.
Myślę, że "N2" jest tym, za czym są. –
Czy jednak nie jest to typ domyślny? Abyś potrzebował tylko 'myPrice.ToString (" N ")'?Nieważne, po prostu ciekawy: p – Svish
C2 jest niepoprawny, ponieważ wyświetla walutę –
myślę, że powinien to zrobić:
String.Format("{0:C}", doubleVar);
Jeśli nie chcesz, aby symbol waluty, a potem po prostu to zrobić:
String.Format("{0:N2}", doubleVar);
Nie sądzę, że chcieli symbol waluty. –
ta odpowiedź jest na miejscu. Jednak warto również zapoznać się z http://msdn.microsoft.com/en-us/library/fht0f5be.aspx dla różnych innych formatów. – James
Look, a konkretnie do format strings "Kukurydza".
double price = 1234.25;
string FormattedPrice = price.ToString("N"); // 1,234.25
Na marginesie, polecam zajrzeć do typu dziesiętnego dla waluty. Pozwala uniknąć błędów zaokrąglania, które plaga unosi, ale w odróżnieniu od liczby całkowitej może zawierać cyfry po przecinku dziesiętnym.
Rzeczywiście. Dziesiętne ułamki powinny być używane do rzeczy, w których liczy się precyzja. –
W niektórych aplikacjach finansowych używanie pływaków jest nielegalne, ponieważ wszystkie zaokrąglenia muszą być wykonywane w określony sposób. Alternatywą, w której klasa typu Decimal lub BigNumbers jest niedostępna, jest użycie liczb całkowitych do przechowywania ułamków jednostki walutowej. Tak więc, na przykład, moglibyśmy liczyć pensy lub ich frakcje. –
Czy to prawda, że błędy zmiennoprzecinkowe są odizolowane od układów i kompatybilnych układów Intela? –
To może pomóc
String.Format("{#,##0.00}", 1243.50); // Outputs “1,243.50″
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50); // Outputs “$1,243.50″
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", -1243.50); // Outputs “($1,243.50)″
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0); // Outputs “Zero″
Ten chcesz to "N2".
Oto przykład:
double dPrice = 29.999988887777666655554444333322221111;
string sPrice = "£" + dPrice.ToString("N2");
może nawet tak:
string sPrice = "";
if(dPrice < 1)
{
sPrice = ((int)(dPrice * 100)) + "p";
} else
{
sPrice = "£" + dPrice.ToString("N2");
}
która skrapla się ładnie do tego:
string sPrice = dPrice < 1 ? ((int)(dPrice * 100)).ToString("N0") + "p" : "£" + dPrice.ToString("N2");
Dalsza lektura na msdn.microsoft.com/en-us/library/fht0f5be.aspx różnych innych rodzajów formatowania
- 1. Formatowanie łańcucha daty w React Native
- 2. Formatowanie PowerShell Get-Date wewnątrz łańcucha
- 3. Test wartości wewnątrz łańcucha
- 4. Formatowanie wartości binarnych w Scali
- 5. Formatowanie sprintf o podwójnej wartości
- 6. C# Numer formatowanie
- 7. Formatowanie wyjścia konsoli C++
- 8. Formatowanie zmiennoprzecinkowe C++
- 9. IOS musi posortować tablicę wartości słowników na podstawie ceny klucza
- 10. Typemock - warte swojej ceny?
- 11. Magento: Uzyskanie przecenionej ceny
- 12. C# HttpWebRequest Data Header Formatowanie
- 13. Formatowanie liczby przecinkami, ale zachowaj wartości dziesiętne
- 14. Formatowanie wartości stopek w sieci ui-grid
- 15. Formatowanie komórki do wartości procentowej w PHPExcel
- 16. limit rozmiaru łańcucha w C++?
- 17. Zwracanie łańcucha C z funkcji
- 18. C# składni Razor wewnątrz łańcucha
- 19. wstaw wartości zmiennych do łańcucha w pytonie
- 20. formatowanie/wcięcia na użyciu instrukcji (C#)
- 21. Formatowanie warunkowe w programie Excel z C#
- 22. Klasa XmlDocument usuwa formatowanie, C#, .NET
- 23. Formatowanie persp3d działki
- 24. Jak lepiej sprawdzić parametr łańcucha Request.QueryString dla wartości null?
- 25. C++ Konwersja łańcucha datetime do epoki Czyściutko
- 26. Usterki Kodowanie ciągu C# do łańcucha JavaScript
- 27. Zamówienie ewaluacji w wywołaniu łańcucha w C++
- 28. C# Element łańcucha XML z atrybutem Nazwa
- 29. Python: Przekazywanie łańcucha Unicode do modułu C++
- 30. Ustawianie ceny specjalnej programowo w Magento
Odpowiedzi, które zasugerowałeś .ToString ("N") są dobre. Po prostu chcę zauważyć, że wynik będzie zależał od aktualnej informacji CultureInfo; To coś dobrego. W moim systemie (szwedzki język) wypisuje "10 215,24", co ma dla mnie sens, ponieważ "10 2115.24" ma dla ciebie sens. Pamiętaj, że możesz napotkać kłopoty, jeśli spróbujesz przetworzyć ten ciąg * z powrotem na DateTime *. –
@Fredrik: Dlaczego miałby sparsować go ponownie do * DateTime *? –
Jego mózg prawdopodobnie przełączył narzędzia w połowie zdania: p – Svish