zaokraglanie double

0

chcialem sie dowiedziec jak zaokraglic liczbe double zeby pozostaly tylko dwie cyfry po przecinku(jak zawsze chodzi o pieniadze :) )

0
MessageBox.Show((1234.5678).ToString("C"));
MessageBox.Show(String.Format("{0:C}", 1234.5678));
Console.WriteLine("{0:C}", 1234.5678);

http://msdn2.microsoft.com/en-us/library/dwhawy9k.aspx

0

private double round(double val)
{
val = val*100; // 100 poniewaz 2 miejsca po przecinku
double floorVal = Math.Floor(val);
if ((val - floorVal) > 0.5)
{
floorVal += 1;
}
val = floorVal / 100;
return (val);
}

dziala dobrze wiec chyba dobrze jest :) , jak ktos ma cos lepszego to niech wali ( rozwiazanie powyzej mnie nie bawi :) )

0

Nie wiem po co chcesz zmniejszać precyzję liczby. Żeby mieć większe błędy zaokrągleń ????? Przecież o 2 miejsca po przecinku chodzi przy wyświetlaniu liczby (ew. przy samej zamianie na postać tekstową).

0

Najprościej to użyć klasy narzędziowej System.Math np.:

double d = 12.3456;
d = Math.Round(d, 2);

0

Math.Round zaokragla do najbliższej całkowitej liczby parzystej, wiec np 1.5 to bedzie 2 i 2.5 bedzie 2 , a nie o to mi chodzilo

0

Bzdury pleciesz - wystarczy zajrzec do dokumentacji:

msdn napisał(a)

Rounds a decimal value to a specified precision.

0

sorki , cos mi sie pomylilo

1 użytkowników online, w tym zalogowanych: 0, gości: 1