none
Berechnung mit Double Datentyp RRS feed

  • Frage

  • Liebe Forengemeinde,

    meine Frage besteht daraus, eine Berechnung mit dem Double Datentyp zu rechnen.

    In meinem Programm geht es um einen Berechner mit mehreren Funktionen.

    Als erstes habe ich zwei Variabeln die mit einem array verknüpft sind.

    Das array und dessen Inhalt ist mit comboboxen verknüpft was aber keine größere Rolle spielt.

    Das Problem dabei ist allerdings, dass ich für längere Berechnungen einen größeren Datentyp benötige,

    sonst wird bspw. immer mit 2.5E-12 abekürzt was ich natürlich ausschreiben möchte!!!

    ich habs jtz mal so versucht:

    Private Sub ERGB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ERGB.Click

    Dim cb As Double Dim cb2 As Double

    dim array() as double = {1, 2, 3}

    'Verknüpfung von array und Comboboxen   If CDbl(CB1.SelectedIndex) = "0" Then
                cb = array(0)
            End If
            If CDbl(CB1.SelectedIndex) = "1" Then
                cb = array(1)
            End If
            If CDbl(CB1.SelectedIndex) = "2" Then
                cb = array(2)
            End If

    If CDbl(CB2.SelectedIndex) = "0" Then
                cb2 = array(0)
            End If
            If CDbl(CB2.SelectedIndex) = "1" Then
                cb2 = array(1)
            End If
            If CDbl(CB2.SelectedIndex) = "2" Then
                cb2 = array(2)
            End If

    'Berechnung des Ganzen

    ERG.text = Cstr(cb * TB.text) * cb2

    End Sub

     

    Wär echt super wenn jemand n Vorschlag oder ne Verbesserung hätte ;)

    danke schnomal im Vorraus

    Gruß Juliano




    Sonntag, 2. Februar 2014 18:48

Antworten

  • Hallo,
    zunächst: abgekürzt wird da nichts. Es wird einfach die Kurzschreibweise von dem genommen, was sich der Computer gemerkt hat.
    Wie genau du deine Verknüpfung meinst, weiß ich aber nicht.

    Um nun die Zahlen ohne E zu bekommen, kannst du das F-Format nutzen:

    Dim s As String = d.ToString("F99").TrimEnd("0"c).TrimEnd(","c)

    Durch F99 werden bis zu 99 Nachkommastellen generiert und durch die TrimEnd-Aufrufe werden die 0 am Ende wieder entfernt.

    Zu der Zeile:

    ERG.text = Cstr(cb * TB.text) * cb2

    Die maht für mich nicht wirklich Sinn. TB ist wahrscheinlich eine TextBox, da ergibt folgender Code mehr Sinn:

    ERG.text = (cb * CDbl(TB.text) * cb2).ToString("F99")...



    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Sonntag, 2. Februar 2014 19:04
    Moderator

Alle Antworten