mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Zaokrąglenia w AMBasic https://forum.mix-soft.pl/viewtopic.php?f=15&t=72 |
Strona 1 z 1 |
Autor: | darek.007 [ 2008-03-28, 10:49 ] |
Tytuł: | Zaokrąglenia w AMBasic |
Jak w FK premium zaokrąglić liczbę 3,12343453 do 4 miejsc po przecinku? round - nie działa zaokrFloat - nie działa ZaokrW1 - DZIAŁA, ale nie tędy droga |
Autor: | rafal [ 2008-03-28, 11:00 ] |
Tytuł: | |
Kod: float sub Zaokr(float InFloat, int iZaokr ) Zaokr = Val((using "%.*f",iZaokr,InFloat)) endsub inFloat - liczba do zaokrąglenia iZaokr - ilość miejsc po przecinku użycie Kod: print Zaokr(3.12343453 ,4) |
Autor: | Jarek75 [ 2009-04-29, 16:51 ] |
Tytuł: | |
Ktoś chce skubnąć grosze i przelać na swoje konto? Ten kod nie działa na FKP2009.1. Właśnie wywaliłem się na takim oto przykładzie: Kod: float n = 4459.75 float v = n*0.22 print n, v, (using "%.2f", v) Wynik: 4459.750000 981.145000 981.14 Czyli nie ma uniwersalnego rounda w fk |
Autor: | wrob [ 2009-04-29, 20:03 ] |
Tytuł: | |
To nie do konca tak jest z tymi zaokragleniami - tzn wlasciwie to nei wiadomo jak ma być istnieja rozny typy zaokragleń (podaje 2 z okolo 10) arytmetyczne: [0-4] w dół, [5-9] w górę: 1.4 = 1, 1.5 =1 do parzystej: liczba zaokrąglana zawsze do najbliższej parzystej: 1.5 = 2, 2.5 = 2 Zaokrąglania do parzystej ma sens przy operacjach finansowych. W przypadku gdy zawsze 0.5 zaokrąglamy w górę, a 0.4 w dół możemy mieć dużą rozbieżność w ostatecznych wynikach. Zaokrąglanie do parzystej (tzw banker’s rounding) niweluje ten błąd. A teraz ciekawostki - PERVASIVE oraz MS SQL - funkcja ROUND() w zapytaniach - działa arytmetycznie, rowniez ROUND w arkuszu Excela dziala arytmetycznie, ale ten sam ROUND np w VBA w EXCELU działa metoda bankową, tak samo jest w wielu implementacjach c i c++..... |
Autor: | Jarek75 [ 2009-04-30, 09:08 ] |
Tytuł: | |
wrob pisze: Zaokrąglania do parzystej ma sens przy operacjach finansowych. W przypadku gdy zawsze 0.5 zaokrąglamy w górę, a 0.4 w dół możemy mieć dużą rozbieżność w ostatecznych wynikach. Zaokrąglanie do parzystej (tzw banker’s rounding) niweluje ten błąd. Statystycznie to może jakoś działa, ale w konkretnych przypadkach i tak nic nie daje: 1.5 + 3.5 = 5.0 zaokrąglenie zwykłe: 2 + 4 <> 5 zaokrąglenie bankowe: 2 + 4 <> 5 W programie FK powinniśmy raczej dostać zaokrąglanie arytmetyczne. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |