Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Nie znalazłem mojego wpisu roundto z wartościami po przecinku,poprzedni wpis 2006-03-13 15:39
prawidłowo
Roundto(2.5,-2)=2.5
Roundto(3.5,-2)=3.5
Źle!!!(systemem księgowym USA)
Round(2.5)=2
Round(3.5)=4
yy...
Round(2,5) równa się 2
Round(1,5) też równa się 2
:|
Co ma na celu funkcja, która tak działa? Bo niezbyt rozumiem... round to round - poniżej x,5 = x, powyżej lub równe x,5 = x+1
Ta funkcja powinna nazywać się magic_round()
Round powinien ZAWSZE działać tak:
round(a) = (floor(a+0.5));
w innym przypadku może prowadzić do kosmicznych błędów w obliczeniach a znalezienie "błędu" to masakra jeśli ktoś przyjmuje, że round działa prawidłowo.
Uwaga na Round, zaokrągla 0,5 do najbliższej liczby parzystej.
Round(2,5) równa się 2
Round(1,5) też równa się 2
wyjście z sytuacji
function Zaokraklij(x:Double):Integer;
begin
if x<0 then
result:=Trunc(x-0.5)
else
result:=Trunc(x+0.5);
end;
Wnioskuję o usunięcie tego tekstu albo całkowitą reorganizację.
Nawet nie ma opisu funkcji 'trunc' wspomnianej w temacie.
Poza tym - trunc nie zaokrągla ale obcina.
W obecnej postaci wskazówka jest bezwartościowa.
Nie znalazłem mojego wpisu roundto z wartościami po przecinku,poprzedni wpis 2006-03-13 15:39
prawidłowo
Roundto(2.5,-2)=2.5
Roundto(3.5,-2)=3.5
Źle!!!(systemem księgowym USA)
Round(2.5)=2
Round(3.5)=4
uses Math
SetRoundMode(rmUp);
RoundTo(1.5,0)=2
RoundTo(2.5,0)=3
informacja - system zaokrągleń w rund jest systemem księgowym USA
yy...
Round(2,5) równa się 2
Round(1,5) też równa się 2
:|
Co ma na celu funkcja, która tak działa? Bo niezbyt rozumiem... round to round - poniżej x,5 = x, powyżej lub równe x,5 = x+1
Ta funkcja powinna nazywać się magic_round()
Round powinien ZAWSZE działać tak:
round(a) = (floor(a+0.5));
w innym przypadku może prowadzić do kosmicznych błędów w obliczeniach a znalezienie "błędu" to masakra jeśli ktoś przyjmuje, że round działa prawidłowo.
Uwaga na Round, zaokrągla 0,5 do najbliższej liczby parzystej.
Round(2,5) równa się 2
Round(1,5) też równa się 2
wyjście z sytuacji
function Zaokraklij(x:Double):Integer;
begin
if x<0 then
result:=Trunc(x-0.5)
else
result:=Trunc(x+0.5);
end;
Wnioskuję o usunięcie tego tekstu albo całkowitą reorganizację.
Nawet nie ma opisu funkcji 'trunc' wspomnianej w temacie.
Poza tym - trunc nie zaokrągla ale obcina.
W obecnej postaci wskazówka jest bezwartościowa.
hmm... a po co było dawać to faq, jak juz istnieją takie teksty (nawet dałeś z Zobacz też) ? :/