login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[C#] Math.Round return 0 (Opgelost)

Offline Ultimatum - 14/06/2009 19:51
Avatar van UltimatumPHP expert Ey, als ik deze berekening heb krijg ik een getal met een aantal getallen na de komma.
  1. MessageBox.Show("W: " + (double)(10 / (1 + (double)40)));

Maar als ik nu een Math.Round() er omheen zet krijg ik er 0 uit.
  1. MessageBox.Show("W: " + Math.Round((double)(10 / (1 + (double)40))));


Wat doe ik verkeerd?

5 antwoorden

Gesponsorde links
Offline Rik - 14/06/2009 20:29
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Op hoeveel decimalen wil je afronden?

Stel je wilt er twee, dan vermenigvuldig je met 100 voordat je afrondt. Vervolgens deel je weer door 100. Voor 3 decimalen 1000, 4 10000, enz..
Offline Ultimatum - 14/06/2009 20:35
Avatar van Ultimatum PHP expert Ik wil op 0 decimalen afronden, maar begrijp niet waarom er 0 uitkomt met Math.Round()
Offline Abbas - 14/06/2009 20:36 (laatste wijziging 14/06/2009 20:43)
Avatar van Abbas Gouden medaille

Crew .NET
Nee , zo doe je dat niet! Je gebruikt nog steeds die Math.Round(), maar met een tweede parameter:

  1. decimal d = 3.141592653;
  2. MessageBox.Show(Math.Round(d, 2).ToString());
  3. //Output: 3,14
  4. MessageBox.Show(Math.Round(d, 6).ToString());
  5. //Output: 3,141593


Edit:
Waarom gebruik je dan Math.Round() ? Als je "op 0 decimalen wil afronden" gebruik je Math.Floor() of Math.Ceiling()! 

Edit2:
Logisch dat je 0 krijgt bij de code in je topic. Math.Round() geeft enkel de getallen voor de komma weer dan, en in dit geval is jouw uitkomst: 10/41 = 0,2439... = 0 (Bij Math.Round() dus).
Offline Ultimatum - 14/06/2009 20:50
Avatar van Ultimatum PHP expert Ow wacht, ik zat niet heel erg op te letten . Want ik krijg namelijk 0.233452434, en met Round op 0 krijg ik natuurlijk 0 ipv 0.24. Heb het dus al opgelost .
Offline Rik - 14/06/2009 21:11
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
@Ultimatum
Vandaar dat ik vroeg op hoeveel deci's je wilde afronden. 

@Titjes
Werkt de Math.Round functie van C# dan niet hetzelfde als die van javascript? Ik dacht wel aan een 2e param, maar ik zag zo snel niet dat dat ook echt kon.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.174s