chcę to zrobić za pomocą funkcji Math.Round
Jak zaokrąglić liczbę do dwóch miejsc po przecinku w C#?
Odpowiedz
Spróbuj tego:
twoDec = Math.Round(val, 2)
Oto przykład:
decimal a = 1.994444M;
Math.Round(a, 2); //returns 1.99
decimal b = 1.995555M;
Math.Round(b, 2); //returns 2.00
Można również zajrzeć do bankierów zaokrąglania/round-to- nawet przy następującym przeciążeniu:
Math.Round(a, 2, MidpointRounding.ToEven);
Więcej informacji na ten temat: here.
Powinieneś być w stanie określić liczbę cyfr, którą chcesz zaokrąglić do korzystania Math.round (YourNumber, 2)
Możesz przeczytać więcej here.
Jedno może chcesz sprawdzić to mechanizm Zaokrąglenie Math.round:
http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx
Poza tym, polecam podejście Math.round (inputNumer, numberOfPlaces) na * 100/100 jeden, ponieważ jest czystszy.
Wikipedia has a nice page zaokrąglanie w ogóle.
Wszystkie języki .NET (zarządzane) mogą korzystać z mechanizmów zaokrąglania czasu wykonywania wspólnego języka (CLR). Na przykład metoda Math.Round() (jak wspomniano powyżej) umożliwia programistom określenie typu zaokrąglania (Round-to-even lub Away-from-zero). Metoda Convert.ToInt32() i jej odmiany używają round-to-even. Metody Ceiling() i Floor() są powiązane.
Możesz również zaokrąglić z custom numeric formatting.
Należy pamiętać, że Decimal.Round() używa innej metody niż Math.Round();
Oto useful pos t na algorytmie zaokrąglania bankiera. Zobacz jeden z Raymonda humorystyczny posts here o zaokrąglenia ...
To dla zaokrągleniu do 2 miejsc po przecinku w C#:
label8.Text = valor_cuota .ToString("N2") ;
W VB.NET:
Imports System.Math
round(label8.text,2)
Osobiście nigdy okrągłych byle co. Zachowajcie go tak stanowczy, jak to tylko możliwe, ponieważ zaokrąglanie jest w pewnym sensie trochę czerwonym śledziem w CS. Ale chcesz sformatować dane dla swoich użytkowników iw tym celu uważam, że dobrym podejściem jest string.Format("{0:0.00}", number)
.
To działa lepiej w przypadku wyświetlania, szczególnie w przypadku pieniędzy, ponieważ 5,4 GBP (z Math.round) nie wygląda tak dobrze jak 5,40 GBP (w ten sposób). –
Próbowałem wcześniej przed string.Format ("0: 0.00", liczba), ale to nie zadziałało. Te nawiasy kwadratowe są bardzo ważne, więc: string.Format ("{0: 0.00}", numer) działa. – FrenkyB
@FrenkyB Kiedy mówisz "nawiasy kwadratowe", mam nadzieję, że masz na myśli nawiasy klamrowe. – Mathemats
Jeśli chcesz ciąg
> (1.7289).ToString("#.##")
"1.73"
lub
dziesiętną> Math.Round((Decimal)x, 2)
1.73m
Ale pamiętaj! Zaokrąglanie nie jest dystrybucyjne, tj. round(x*y) != round(x) * round(y)
. Więc nie rób żadnego zaokrąglania aż do samego końca obliczeń, w przeciwnym razie stracisz celność.
string a = "10.65678";
dziesiętny D = Math.Round (Convert.ToDouble (a.ToString()) 2)
// konwersji zapisu do dwóch miejsc po przecinku
String.Format("{0:0.00}", 140.6767554); // "140.67"
String.Format("{0:0.00}", 140.1); // "140.10"
String.Format("{0:0.00}", 140); // "140.00"
Double d = 140.6767554;
Double dc = Math.Round((Double)d, 2); // 140.67
decimal d = 140.6767554M;
decimal dc = Math.Round(d, 2); // 140.67
======== =
// just two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
może również łączyć "0" z "#".
String.Format("{0:0.0#}", 123.4567) // "123.46"
String.Format("{0:0.0#}", 123.4) // "123.4"
String.Format("{0:0.0#}", 123.0) // "123.0"
String.Format ("{0: 0.00}", 140.6767554); ! = "140.67" Rzeczywiście renderuje jako "140.68" - zaokrągla w górę – AndyT
public double RoundDown(double number, int decimalPlaces)
{
return Math.Floor(number * Math.Pow(10, decimalPlaces))/Math.Pow(10, decimalPlaces);
}
Math.floor (123456,646 * 100)/100 Wrócimy 123456.64
Wiem, że stare pytanie, ale proszę zwrócić uwagę na następujące różnice między Math okrągłych i Format ciągu::
decimal d1 = (decimal)1.125;
Math.Round(d1, 2).Dump(); // returns 1.12
d1.ToString("#.##").Dump(); // returns "1.13"
decimal d2 = (decimal)1.1251;
Math.Round(d2, 2).Dump(); // returns 1.13
d2.ToString("#.##").Dump(); // returns "1.13"
- 1. Jak zaokrąglić do dwóch miejsc po przecinku?
- 2. muszę zaokrąglić pływaka do dwóch miejsc po przecinku w Javie
- 3. zaokrąglić do 2 miejsc po przecinku
- 4. dwóch miejsc po przecinku printf()
- 5. Zaokrąglanie zmienną dokładnością do dwóch miejsc po przecinku C#
- 6. Format dokładnością do dwóch miejsc po przecinku
- 7. Zaokrąglanie do dwóch miejsc po przecinku w Pythonie 2.7?
- 8. Jak obciąć liczbę do 2 miejsc po przecinku w ColdFusion?
- 9. Zaokrąglanie w dół do 2 miejsc po przecinku w C#
- 10. Limit podwójną dokładnością do dwóch miejsc po przecinku
- 11. Jak zaokrąglić w systemie dziesiętnym z dokładnością do 2 miejsc po przecinku w Objective-C
- 12. Android - zaokrąglenie do 2 miejsc po przecinku
- 13. Clojure zaokrąglenie do miejsc po przecinku
- 14. Formatowanie od podwójnego do dwóch miejsc po przecinku
- 15. Okrągły pustych dziesiętny do 5 miejsc po przecinku
- 16. Jak zaokrąglić liczbę w JavaScript?
- 17. Jak wyświetlić liczbę do dwóch miejsc po przecinku w funkcji basha?
- 18. Zapytanie SQL o obcięcie do dwóch miejsc po przecinku?
- 19. przekształcania się podwoić do dwóch miejsc po przecinku
- 20. printf zmienną liczbę miejsc po przecinku w obrocie
- 21. Okrągła liczba okrążeń do 2 miejsc po przecinku java
- 22. Pokazuję liczbę z 2 miejsc po przecinku w widoku siatki
- 23. Konwersja wartości do 2 miejsc po przecinku w ciągu jQuery
- 24. Jak wyświetlić liczbę do 2 miejsc po przecinku w mvc3, C#?
- 25. Jak zaokrąglić liczbę w JavaScript?
- 26. SQL - zaokrąglanie do 2 miejsc po przecinku
- 27. wykończenia do 2 miejsc po przecinku
- 28. jQuery ograniczenie do 2 miejsc po przecinku
- 29. Oblicz grupa procent do 2 miejsc po przecinku - SQL
- 30. Jak wyświetlić wartości tylko do 2 miejsc po przecinku
Powinieneś sprawdź, czy MidPointRounding.ToEven jest wartością domyślną. Jeśli chciałeś AwayFromZero, musiałbyś użyć przeciążenia –
Jestem ranny, dlaczego MidPointRounding.ToEven jest domyślny ... – Pedro77
Myślę, że powinno być: 'MidpointRounding', a nie 'MidPointRounding' na wypadek, gdyby ktoś zastanawiał się, dlaczego nie kompiluje. –