irgendwas muss ich falsch machen... ich hab jetzt double, decimal und float ausprobiert, aber 1/400 ist und bleibt scheinbar 0... und nicht nur das, ich kann gar keine zahlen teilen, was ich rausbekomme bleibt irgendwie immer int?!
double newtime = 1/400;
MessageBox.Show(Convert.ToString(newtime));
ist es einfach nur zu spät? oder übersehe ich etwas grundlegendes...
danke...
Catscrash
Hallo Catscrash,
das Ziel der Zuweisung ist zweitrangig, die Operanden müssen vom richtigen Typ sein:
double newtime = 1**.0**/400**.0**;
herbivore
oder noch genauer:
double newtime = 1.0F/400.0F;
oder noch genauer:
Was ist daran genauer? Wenn ein Double genau rauskriegen willst und dazu zwei Floats dividierst hast du rein gar nichts gekonnt, außer eine niedrigere Genauigkeit. Die 8 Byte Speicher, die du dabei sparst kann man unter Jux verbuchen. Was am Ende am besten ist, kann man so sowieso nicht sagen (Was ist denn die 1 und was die 400?)
ah... typsichere sprache... richtig da war mal was... okay, danke damit wäre das auch geklärt... gibt es vlt. ne einfachere möglichkeit (insbesondere eine die schneller zu tippen ist) als Convert.ToDouble? Es sind natürlich variablen, keine fixen werte, aber die sind halt bis zu dem Punkt zwingend als int vorliegend...
Naja
(double)var
wenn var die Variable ist, sollte ausreichend sein. Außerdem musst du nur einen von den beiden zwingend konvertieren, die andere Konvertierung dürfte implizit klappen...
Hallo!
Zumal ich vor kurzem in einem Blog gelesen hab', dass TypeCasts in solchen Fällen schneller sind, als die Convert-Klasse.
Weis jetzt den Link nicht mehr, aber kann man ja mit zweich Schleifen und Timer schnell selbst testen (soll ca. 80% schneller gehen).
Wenn ich den Link nochmal finde, werde ich ihn nachtragen ...
Edit: Hab's gefunden: Renemt-Blog: TypeCasts schneller als Convert
Nobody is perfect. I'm sad, i'm not nobody 🙁
Hallo tom-essen,
vielleicht hast du das auch auf myCSharp.de gelesen:
Convert Problem.
Aber die Performance ist zweitrangig:
Convert Problem.
herbivore
Original von onlinegurke
oder noch genauer:
Was ist daran genauer? Wenn ein Double genau rauskriegen willst und dazu zwei Floats dividierst hast du rein gar nichts gekonnt, außer eine niedrigere Genauigkeit. Die 8 Byte Speicher, die du dabei sparst kann man unter Jux verbuchen. Was am Ende am besten ist, kann man so sowieso nicht sagen (Was ist denn die 1 und was die 400?)
Ach... dann nenne mir bitte jemand das Suffix für Double! D? Mir sind gerade nur F und M geläufig. Sorry.
Mit "genauer" meinte ich eigentlich nicht die Anzahl der Stellen, sondern eigentlich eher semi-synonym "sauberer".
Hallo 7.e.Q,
das "Suffix" für double ist eben z.B. .0, also die Angabe von Nachkommastellen nach einem Punkt.
herbivore
Ach da gibt's keins? Okay... da gibt's so'n Spruch mit "alt" und "Kuh"; der wäre ganz passend.