![]() |
Anfängerfehler
Kann mir das wer erklären:
Code:
Ich kappier das nicht, wieso ich das Ergebnis per Carting in double Umwandeln muss, obwohl ich es einer double Variable zuweise... :?
(...)
private double max; (...) this.max = 99991; //Beispiel (...) double up = (Console.WindowWidth - 3) / this.Max; //Ergibt 0 double up = (double)(Console.WindowWidth - 3) / this.Max; //Ergibt das richtige (zB 0,00008000720065) Faux |
Re: Anfängerfehler
Vermutlich wird der Operator / auf Integern auch nur ein Integer-Ergebnis liefern. Bei Delphi gibt es zwei Operatoren / und div, wobei / immer ein Double (Extended?) liefert.
I |
Re: Anfängerfehler
Ja, das mit Delphiist mir bekannt, deswegen dachte ich, dass es auch in C# so ist...
|
Re: Anfängerfehler
:gruebel:
Code:
Funktioniert beides perfekt. Ich kann mir nicht wirklich vorstellen, dass sie in C# 2.0 die impliziten Konvertierungen verändert haben :gruebel: .
class TestClass
{ private double max = 99991; private int WindowWidth = 10; // Console.WindowWidth gibts in 1.1 nicht public void Test() { double up = (WindowWidth) / max; // Ergibt 0,00010009... Console.WriteLine(up); up = (double)(WindowWidth) / max; // Ergibt 0,00010009... Console.WriteLine(up); } } |
Re: Anfängerfehler
Ich hab mich schon grün und blau geärgert, und nichte gefunden woran es liegt, dass bei so einer simplen Division immer 0 raus kommt. Dannhab ich mir beide Faktoren per Diagnostics.Debug.WriteLine ausgeben lassen und die waren eben 80 und 99991. Ich hab dann in meiner Verzweiflung einfach ein Carting reingehauen - dann gings. - Ohne Carsting wieder net... :wall:
Will wer die ganze Klasse sehen (ca 20 Zeilen)? Faux |
Re: Anfängerfehler
Tag. Ja gib mal bitte die ganze Klasse.
[edit] Also ich kann das Ergebnis von Khabarakh mit .NET Beta 2 bestätigen. [/edit] Greetz Sergej |
Re: Anfängerfehler
Zitat:
|
Re: Anfängerfehler
:mrgreen: Alle habens gesehen und alle haben sich beherrscht..und dann kamst du :zwinker:
@Faux: Was er damit sagen wollte, es heißt : Casting ;-) Greetz Sergej |
Re: Anfängerfehler
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, weiß ich doch nicht wie das Zeug heißt... :roll: Ich weiß wie man es anwendet und das reicht mir... :wink:
Zeile 66.
Code:
Da müsste es doch völlig egal sein, ob ich jetzt ein Casting mache, oder nicht, oder???
class SaveThread
{ private Thread InternalThread; public Thread Thread { get { return this.InternalThread; } } #region Variablendeklaration /*** Hier wären noch ein paar restliche Variablen ***/ private int Max; public int Maximum { get { return this.Max; } set { this.Max = value; } } private double Percent = 0; public double Percentage { get { return this.Percent; } } #endregion public SaveThread() { this.InternalThread = new Thread(new ThreadStart(Execute)); } public void Execute() { System.IO.StreamWriter file = new System.IO.StreamWriter(this.SaveFileName); file.WriteLine("Text;MD5"); //********* HIER IS DIE ZEILE: *********// double up = (double)(Console.WindowWidth - 3) / this.Max; //Hier ist das CASTING ohne r foreach (Types.OutputStruct value in this.DataArray) { file.WriteLine(value.Text + ";" + value.MD5); this.Percent += up; } file.Close(); } } } Ich denke nicht, dass es an der Klasse liegt. Eher am Rest des Codes: Ausschnitt vom Code:
Code:
@MathiasSimmack: Da hab ich aber schon vieel peinlichere Fehler in der DP gesehen.... :stupid:
Console.Write("Pfad> ");
SaveThread Save = new SaveThread(); Save.FileName = Console.ReadLine(); Save.Maximum = Schleife.Maximum; Save.Data = Schleife.Output; Save.Thread.Start(); while (Save.Thread.IsAlive) { string Bar = ""; for (int i = 0; i < Console.WindowWidth - 3; i++) { if (i < Save.Percentage * (Console.WindowWidth - 3)) Bar += "="; else Bar += " "; } Console.Write("[" + Bar + "]"); Console.Write('\r'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz