debigging
Goto Top

VisualBasic Problem mit Addierung von Nachkommastellen

Hallo zusammen,

Ich habe ein Problem bei meinem Programm. Um eine Oberfläche zu berechnen lasse ich aus verschiedene Werte mit Hilfe von Math.Sqrt eine Wurzel ziehen.Das Ergebnis davon besitzt dann xxx Nachkommastellen.

Das Problem ist wenn man mehrere Ergebnisse mit Nachkommastellen zu einer zusammen Rechnen lassen will .. kommen immer nur abgerundete GANZE Ergebnisse raus.


Hier ein vereinfachtes Beispiel meines Problems.

e96e3c9201c36d46171c7c881219e1b5



Source-Code:

Dim Länge As String = TextBox1.Text
Dim Breite As String = TextBox2.Text
Dim Höhe As String = TextBox3.Text

Dim K As String = Math.Sqrt(Val(Breite) ^ 2 / Val(4) + Val(Höhe) ^ 2)
Dim O As String = Val(2) * K * Val(Länge)


TextBox4.Text = O
TextBox5.Text = O

TextBox6.Text = Val(O) + Val(O)


Danke schonmal face-smile

Content-Key: 285502

Url: https://administrator.de/contentid/285502

Printed on: April 24, 2024 at 02:04 o'clock

Member: AndreasHoster
Solution AndreasHoster Oct 14, 2015 updated at 12:06:51 (UTC)
Goto Top
Aus der Beschreibung der VAL Funktion:

Die Val-Funktion erkennt nur den Punkt (.) als gültiges Dezimaltrennzeichen. Wenn Sie ein anderes Dezimaltrennzeichen benötigen (z. B. für internationale Anwendungen), verwenden Sie stattdessen die Funktion CDbl oder CInt, um eine Zeichenfolge in eine Zahl zu konvertieren.

Außerdem:
Wenn ich rechnen will, dann speichere ich die Zahlen, mit denen ich rechnen will, als Zahlen und konvertiere es erst dann in einen String wenn ich es ausgeben will.
Jedesmal konvertieren kann ja nur zu Fehlern führen. Von der Performance ganz zu schweigen.
Mitglied: 122990
Solution 122990 Oct 14, 2015 updated at 12:03:27 (UTC)
Goto Top
Moin,
weil Val() hier nur Zahlen mit einem Punkt als Dezimalstelle in eine Zahl konvertieren kann. Nehm besser die Konvertierungsfunktionen von Double oder Float je nach maximalen Zahlengrößen.
Double.Parse(Breite)
oder
Convert.ToDouble(Breite)
oder
CDbl(Breite)
Gruß grexit
Member: DeBigging
DeBigging Oct 14, 2015 at 12:03:54 (UTC)
Goto Top
So einfach kanns sein :D vielen dank face-smile