Hallo zusammen,
ich habe einige Beiträge hier im Forum zu Potenzen und Exponenten gelesen, aber trotzdem habe ich noch Probleme damit 🙁 Ich hoffe ihr helft mir auf die Sprünge.
Ich versuche mich gerade an einem kleinen Programm zur Druckberechnung und möchte die Einheit Pascal (Pa) in technische Atmosphären (at) umrechnen. Laut Wikipedia ist 1 Pa = 1.0197 * 10 ^-5 at oder andere Schreibweise: 1.0197e-5
Das entspricht doch 1.0197 / 10 /10 /10 /10 /10 = 0.000010197. Ich könnte auch rechnen 1.0197 * 0.00001 = 0.000010197
Mit den beiden Rechnungen komme ich zwar auf das richtige Ergebnis, aber das muss doch auch "einfacher, flexibler, schöner" zu machen sein. Ich habe probiert:
Ergebnis1 = Math.Exp(1.0197e-5);
Ergebnis2 = Math.Pow(1.0197/10, - 5);
Ergebnis3 = Math.Pow(1.0197*10, - 5);
Aber damit erhalte ich:
Ergebnis1 = 1.0000101970519897
Ergebnis2 = 90706.394296645914
Ergebnis3= 0.00000907063942966459
Irgendwie steh ich auf dem Schlauch 🙁 Was mach ich falsch ?(
Gruss
Peter
Hallo,
rechne mit einer Multiplikation.
double at = pa * 1.0197e-5;
BTW 1: Die Einheit at
sollte eigentlich nicht verwendet werden. Seit 01.01.1978 ist die Einheit bar
zu verwenden.
BTW 2: Siehe auch [Hinweis] Wie poste ich richtig? Punkt 1.1.1 😉
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo pebo,
1E-5 bedeutet 1 * 10^-5. Demzufolge wäre die richtige Schreibweise mit pow:
double dErgebnis = 1.0197 * Math.Pow(10, -5);
Du könntest natürlich auch ne kleine Funktion schreiben, die das noch kompakter erledigt. Aber falls du es nicht ständig brauchst ist das doch einfach genug, oder.
Beste Grüße
Stefan
"Indem Sie über dieses ernste Thema lachen disqualifizieren Sie sich selbst."
mrleeh.de
Hallo pebo,
das hat nichts mit negativen Exponenten zu tun. Math.Pow(x, y) rechnet einfach x ^ y und nicht x * (10 ^ y). Daher auch der Vorschlag von MrLeeh, der ja auf x * Math.Pow(10, y) hinausläuft, was dann wirklich x * (10 ^ y) rechnet. Aber warum willst du überhaupt rechnen? Du kannst doch einfach die "andere Schreibweise: 1.0197e-5" direkt im Programm benutzen.
BTW: Math.Exp (x) rechnet e ^ x, was völlig an der Sache vorbeiführt.
herbivore
Guten Morgen gfoidl, MrLeeh und herbivore,
vielen Dank für eure Hilfe 👍
Wenn ich eure Antworten so lese, fällt es mir wie Schuppen von den Augen und ich ärgere mich auch ein wenig darüber, dass ich nicht selbst, trotz Lesen der Hilfe und der anderen Forumsbeiträge, darauf gekommen bin 🙁
BTW 2: Siehe auch [Hinweis] Wie poste ich richtig? Punkt 1.1.1 😉
Sorry Leute, diesen Punkt habe ich jetzt erst richtig durchgelesen. Ich gelobe Besserung 😉
Wünsche Euch nen schönen Sonntag
Peter