Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# - Double.NaN

Aké máte skúsenosti s touto konštantou?

Chcel som ju využiť, aby som nemusel robiť podmienky navyše. Jednalo sa o to, že v určitom prípade sa mal počítať acos hodnoty menšej ako -1 a dopadlo to takto:
1. Pri zobrazení premennej s výsledkom cez MessageBox.Show sa zobrazilo "nie je číslo".
2. Pri porovnaní premennej s výsledkom a konštanty Double.NaN bola podmienka nepravdivá. Nakoniec som musel program prerobiť tak, ako by bol urobený v iných programovacích jazykoch.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Také chovanie je štandardné (nezáleží od programovacieho jazyka). Na porovnanie, či je v premennej N…
los 24.05.2009 14:17
los
To ma prekvapuje, lebo v MSDN helpe je napísaný príklad, kde sa porovnáva delenie nulou takto: if (…
msx. 24.05.2009 21:05
msx.
Co to je za hovadinu? Tohle snad bude true pořád, ne?
MaSo 24.05.2009 22:55
MaSo
Já bych spíše čekal, že to vždy vyhodí DIV zero exception.
Flash_Gordon 24.05.2009 23:28
Flash_Gordon
Omyl, v C# je riešené aj delenie nulou.
msx. 25.05.2009 00:04
msx.
... pozor na to ze aj v C# mas okrem IsNaN() aj IsInfinity(), neni to to iste. Neviem zhlavy co vzni…
MM.. 25.05.2009 18:16
MM..
V C# je NaN. Nevedel som, že je to vyriešené v C++. Myslel som, že C# bolo prvé. Je dobré, že to pri…
msx. 25.05.2009 20:58
msx.
Aj v C# je definovane okrem NaN aj Infinity (nekonecno), a mozu ti tam vzniknut obe (a .IsNan() nete… poslední
MM.. 25.05.2009 21:09
MM..

... pozor na to ze aj v C# mas okrem IsNaN() aj IsInfinity(), neni to to iste. Neviem zhlavy co vznika pri deleni nulou, ale infinity moze vzniknut napr. pri deleni velmi malym cislom (alebo aj pri deleni nulou a NaN vznikne len pri 0.0/0.0 - pozri si poriadne MSDN alebo vysledok testuj na obe!)

Aj v C# je definovane okrem NaN aj Infinity (nekonecno), a mozu ti tam vzniknut obe (a .IsNan() netestuje pripad ked tam je Infinity). Takze aj na to davat pozor a prip. ak je to nutne tak testovat aj IsInfinity(). Predpokladam ze infinity tam budes mat ked urobis napr. 1/0, a NaN budes mat ked urobis 0/0, ale over si to. A Infinity bude urcite vysledok operacie napr. velmi velke/velmi male cislo.

Zpět do poradny Odpovědět na původní otázku Nahoru