Forum » Programiranje » [c#] NaN, not a number
[c#] NaN, not a number
japol ::
Kako naredim, če slučajno dobim vrednost sprememnljivke NaN, da ji določi vrednost 0?
Poskušam nekaj takega ampak ni učinka:
Poskušam nekaj takega ampak ni učinka:
a1 = double.Parse(textBox20.Text); a2 = double.Parse(textBox21.Text); if (a1 == double.NaN) { a1 = 0; } if (a2 == double.NaN) { a2 = 0; }
Infinity ::
želiš narediti da bo deloval le kot numeric input?
drugače pa si malo preberi dokumentacijo http://msdn.microsoft.com/en-us/library... tako deluje TryParse ki ti bo naredil to kar si ti vprašal.
drugače pa si malo preberi dokumentacijo http://msdn.microsoft.com/en-us/library... tako deluje TryParse ki ti bo naredil to kar si ti vprašal.
japol ::
Bom dal kar primer:
imam:
-3,5/16 : 13,92 + 0,00 = 13,92
-3,5/17 : 13,30 + 0,00 = 13,30
-3,5/18 : 12,74 + 0,00 = 12,74
-3,5/19 : 12,24 + 0,00 = 12,24
-3,5/20 : 11,78 + 0,00 = 11,78
-3,5/21 : 11,35 + 0,00 = 11,35
-3,5/22 : 10,96 + 0,00 = 10,96
-3,5/23 : 10,61 + 0,00 = 10,61
-3,5/24 : 10,27 + 0,00 = 10,27
-3,5/25 : 9,95 + NaN = NaN
-3,5/26 : 9,67 + 0,00 = 9,67
-3,5/27 : 9,40 + 0,00 = 9,40
-3,5/28 : 9,14 + 0,00 = 9,14
-3,5/29 : 8,90 + 0,00 = 8,90
-3,5/30 : 8,67 + 0,00 = 8,67
-3,5/31 : 8,47 + 0,00 = 8,47
in potem potrebujem minimalno vrednost, kot je iz seznama vidno, je to zadnja vrednost, ampak ker je nekje vmes NaN, mi vedno njega izpostavi kot minimalno vrednst.
Zato želim, da če je vrednost NaN, da namesto nje vzame 0 (nadomesti NaN z 0).
imam:
-3,5/16 : 13,92 + 0,00 = 13,92
-3,5/17 : 13,30 + 0,00 = 13,30
-3,5/18 : 12,74 + 0,00 = 12,74
-3,5/19 : 12,24 + 0,00 = 12,24
-3,5/20 : 11,78 + 0,00 = 11,78
-3,5/21 : 11,35 + 0,00 = 11,35
-3,5/22 : 10,96 + 0,00 = 10,96
-3,5/23 : 10,61 + 0,00 = 10,61
-3,5/24 : 10,27 + 0,00 = 10,27
-3,5/25 : 9,95 + NaN = NaN
-3,5/26 : 9,67 + 0,00 = 9,67
-3,5/27 : 9,40 + 0,00 = 9,40
-3,5/28 : 9,14 + 0,00 = 9,14
-3,5/29 : 8,90 + 0,00 = 8,90
-3,5/30 : 8,67 + 0,00 = 8,67
-3,5/31 : 8,47 + 0,00 = 8,47
in potem potrebujem minimalno vrednost, kot je iz seznama vidno, je to zadnja vrednost, ampak ker je nekje vmes NaN, mi vedno njega izpostavi kot minimalno vrednst.
Zato želim, da če je vrednost NaN, da namesto nje vzame 0 (nadomesti NaN z 0).
boolsheat ::
Mogoče kaj takega
if(textBox20.Text=="NaN")
a=0;
Torej preveri, če je vhodni string enak Nan in potem nastavi vrednost spremenljivke...
if(textBox20.Text=="NaN")
a=0;
Torej preveri, če je vhodni string enak Nan in potem nastavi vrednost spremenljivke...
Zgodovina sprememb…
- spremenil: boolsheat ()
Smurf ::
Nisem kaj dosti programiral v c#, ampak imam v spominu, da NaN ni enak NaN (kar je logicno saj oznacuje, da ni stevilka, torej je ne mores primerjati).
Mislim, da bi moralo delati a1.Equals(Nan).
Mislim, da bi moralo delati a1.Equals(Nan).
Zgodovina sprememb…
- spremenil: Smurf ()
mihies ::
Uporabi LINQ:
double min = vrednosti.Where(n => n != double.NaN).Min();
Tole ti bo ruklno, če zaporedje nima elementov, npr:
int min = new int[0].Min();
Lahko se prej vprašaš, če zaporedje ima elemente, ali pa rešiš z ničelnimi tipi:
int? min = new int[0].Min(i => (int?)i);
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
Infinity ::
double val; a1 = !double.TryParse(textBox20.Text, out val) ? 0 : price;
tkole je najbl simpl
mihies ::
double val;
a1 = !double.TryParse(textBox20.Text, out val) ? 0 : price;
tkole je najbl simpl
Od kje pa price dobiš v tem primeru?
Verjetno si imel v mislih tole:
double val; a1 = !double.TryParse(textBox20.Text, out val) ? 0 : val;
FYI po mojem največja vrednost TryParse pred Parse je to, da prvi ne vrže izjeme, če mu tekst ni všeč.
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
Zgodovina sprememb…
- spremenil: mihies ()
Infinity ::
hvala, to sem imel v mislih malo sem se zatipkal ko sem pretipkaval kodo
točno to da ne vrže izjeme je prednost, ker ti vrne točno to kar večinoma rabiš, in to ni napaka v programu kadar beremo user input torej nipotrebna izjema.
točno to da ne vrže izjeme je prednost, ker ti vrne točno to kar večinoma rabiš, in to ni napaka v programu kadar beremo user input torej nipotrebna izjema.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# Top tutorialiOddelek: Programiranje | 2579 (1842) | darkkk |
» | [c#] kako skriti vsebinoOddelek: Programiranje | 2981 (2165) | def0r |
» | [C#] seštevanje vrednostiOddelek: Programiranje | 1149 (1052) | mihies |
» | [c#] try/catch, v katerem gradniku je napakaOddelek: Programiranje | 1026 (764) | japol |
» | [c#] Vstavljanje vrednosti v tabeloOddelek: Programiranje | 1614 (1436) | Cvenemir |