Diskuze: rozsahy real datových typů
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Float proměnné umožňují uložit navíc hodnoty +-nekonečno a NaN, tipoval bych, že když hodnota překročí rozsah typu, tak se tam uloží asi to nekonečno, zkus zkontrolovat, co máš v té proměnné po uložení.
ahoj děkuju za radu. vyzkoušel sem to a opravdu mi to hlásí +nekonečno. ale to mi příde stejně zajímavý, protože to nekonečno je přece definovaný v unitě math. no děkuju každopádně, protože mě díky tvý odpovědi napadlo jak vyřešit ten skutečnej problém, kvůli kterýnu sem prováděl ten test přiřazení.
Na to samý sem se zeptal, ještě v diskuzi na community.freepascal.org. odpověděl mi Jonas Maebe. Snad nebude vadit pokud se vložim můj překlad jeho odpovědi:
Kontrola rozsahu funguje pouze pro přesné typy. currency a comp jsou
zvláštní případy, protože na některých platformách jsou
implementovány
unitou floating point (pohyblivá čárka), přesto že mají přesné
ohraničení. Kontrola rozsahu nefunguje na typy s desetinným místem.
Je možné nastavit unitu floating point na kontrolu přetečení nebo
podtečení, pokud chceš vyjímky v těchto případech.
(http://www.freepascal.org/…ionmask.html)
Měl by si vědět, že "podrazí nohy" velké části kódu (zvlášť pokud použiješ externí C knihovny)
Jonas Maebe, 21 srpen 2013 11:34
Mohl sem něco přeložit špatně tak ještě přikládám originál:
Range checking only works for exact types. currency and comp are special
cases because on some platforms they are implemented using
the floating point unit, but they still have exact boundaries. Range checking
does not work for floating point types.
You can enable FPU overflow and underflow checking if you want exceptions in
those cases
(http://www.freepascal.org/…ionmask.html), but note that
this will probably trip up a lot of code
(especially if you use external C libraries).
V Delphi šlo tuším direktivy nastavovat i jen pro části kódu, takže by sis to hlídání mohl zapnout jen pro část kódu, kde to potřebuješ.
No to je právě teď můj strop . Kondicionály IFDEF, nemám vůbec zmáklý. takže, to budu řešit
oddělenejma unitama a až si nastuduju a otestuju ty kondicionály, tak to
zkusim použít, jestli to bude fungovat. Moc děkuju.
Zobrazeno 5 zpráv z 5.