Autor Beitrag
GURKE deluxe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: Mo 11.10.10 15:35 
Hallo,
Ich habe folgenden Code:
ausblenden C#-Quelltext
1:
2:
3:
//rtbEingabe.TextLength = 17158//

Int32 x = Convert.ToInt32(Math.Round((decimal)(Math.Sqrt(Convert.ToDouble(rtbEingabe.TextLength / 3))), 0, MidpointRounding.AwayFromZero));


Er sagt mir, das das 303 sein sollen. Aber das ist doch vollkommener Murks?!

Wurzel(17158 / 3) = Wurzel(5719.33333) = ~75,6 -> Gerundet: 75

Warum bekommt er jetzt aber 303 raus?

GURKE

PS: Geht das ganze nicht auch ohne es 3 mal umzuformen?

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: Mo 11.10.10 15:48 
Hallo Gurke,

Mir ist nicht ganz klar was du machen willst!?

aber wenn ich ausgeben lasse

ausblenden C#-Quelltext
1:
2:
double t = Math.Sqrt(17158/3);
MessageBox.Show(t.ToString());

bekomme ich 75,....... raus

und nur nebenbei, wenn du die länge eines Textes haben willst benutze stringvariable.Lenght

_________________
Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
GURKE deluxe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: Mo 11.10.10 16:16 
Das Problem hat sich jetzt gelöst, ich verstehe zwar immernoch nicht was ich falsch gemacht haben soll, aber egal...
djfresh
Hält's aus hier
Beiträge: 9

Win XP SP3, Win Vista Business, Win 7 Professional
C# (VS2010 Prof.)
BeitragVerfasst: Di 12.10.10 17:32 
Ich bekomme sogar nur 1 raus...

1. mal wandelst du die Text Länge in Double um, wie wärs denn nur mit Text ?!?

2. willst abrunden oder aufrunden ?

weil 75.6... ist 76 gerundet...

ausblenden C#-Quelltext
1:
x = Convert.ToInt32(Math.Round((decimal)(Math.Sqrt(Convert.ToDouble(Convert.ToDouble(textBox1.Text) / 3))), 0, MidpointRounding.AwayFromZero));					


so funktioniert dein Code...

P.S. oder so:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
        private double y;
        private double z;
        private decimal f;
        private decimal g;
        private void button1_Click(object sender, EventArgs e)
        {
            y = Convert.ToDouble(textBox1.Text);
            z = Math.Sqrt(y/3);
            f = (decimal)z;
            g = Math.Round(f);
            label1.Text = g.ToString();
        }
GURKE deluxe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: Di 12.10.10 18:28 
Moin,
Interessant das du 1 raus bekommst :D
Meine Formel sieht jetzt so aus und die funktioniert interessanter Weise:
ausblenden C#-Quelltext
1:
int xy = Convert.ToInt16(Math.Round(Math.Sqrt(datei.Length), 0, MidpointRounding.AwayFromZero));					


Gruß
GURKE

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt