Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
swc
Newbie
Newbie

Anmeldedatum: 17.09.2011
Beiträge: 2

Konvertierungsproblem beim Umwandeln einer Zahl
Verfasst am: 17.09.2011, 10:31

Hallo Zusammen,

erst einmal ein Kompliment für das tolle Forum. Habe hier schon wertvolle Tips gefunden.

Jetzt habe ich aber ein Problem für das ich noch keine Lösung finden konnte und hoffe auf Unterstützung.

Kurze Erklärung:
Ich multipliziere Zahlen mit Minuten und teile das Ergebnis dann in Stunden und Minuten. Um das zu lösen, arbeite ich mit Teilergebnissen mit den ich dann weiterrechne.

Soweit so gut. Wenn ich eines meiner Ergebnisse (Nr. Cool jetzt weiterverwenden will, bekomme ich aber folgende Meldung: "Beim Umwandeln aus einer Zahl muss der Wert eine Zahl sein, die kleiner als unendlich ist."

Ich verstehe nur nicht warum, da ich die gleiche Logik verwende wie bei den vorherigen Berechnungen.

Hier mein Code:

Code:
Private Sub cmdBerechnen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdBerechnen.Click

       Dim Ergebnis1, Ergebnis2 As Integer
       Dim Ergebnis3, Ergebnis4, Ergebnis5, Ergebnis6, Ergebnis7, Ergebnis8, Ergebnis9, Ergebnis10 As Double
       'Formate der Ergebnisse festlegen

       ' Ergebnis 1 = Umrechnung ein Mitarbeiter pro Woche
       ' Ergebnis 2 = Summe für alle Mitarbeiter pro Woche
       ' Ergebnis 3 = Stunden aus Ergebnis 2 ausrechnen
       ' Ergebnis 4 = Minuten aus Ergebnis 5 ausrechnen
       ' Ergebnis 5 = Ergebnis 2 mal Arbeitstage
       ' Ergebnis 6 = Stunden aus Ergebnis 5 ausrechnen
       ' Ergebnis 7 = Minuten aus Ergebnis 5 ausrechnen
       ' Ergebnis 8 = Kosten für Stunden aus Ergebnis 6
       ' Ergebnis 9 = Kosten für Minuten aus Ergebnis 6
       ' Ergebnis 10 = Gesamtkosten aus Ergebnis 8 und 9

       If txtEingabeDifferenzProTag.Text = "" Then MsgBox("Bitte tragen Sie eine Zahl für 'Differenz pro Tag' ein")
       'Prüfen ob ein Wert eingetragen ist.

       If txtEingabeDifferenzProTag.Text <> "" Then _
           Ergebnis1 = (Convert.ToInt16(txtEingabeDifferenzProTag.Text) * 5)
       lblErgebnisSummeWoche.Text = CStr(Ergebnis1)
       'Eingabe auf 5 Arbeitstage umrechnen + anzeigen

       If txtEingabeDifferenzProTag.Text = "" Then MsgBox("Bitte tragen Sie eine Zahl für 'Differenz pro Tag' ein")
       'Leere Felder abfangen

       If txtEingabeAnzahlMitarbeiter.Text <> "" Then _
       Ergebnis2 = (Ergebnis1 * Convert.ToInt16(txtEingabeAnzahlMitarbeiter.Text))
       lblErgebnisMitarbeiterWocheMinuten.Text = CStr(Ergebnis2)
       'Summe der Wochenzeit mit Anzahl Mitarbeiter multiplizieren + anzeigen

       If txtEingabeAnzahlMitarbeiter.Text = "" Then MsgBox("Bitte tragen Sie eine Zahl für 'Anzahl Mitarbeiter' ein")
       'Leere Felder abfangen

       Ergebnis3 = CInt(Math.Floor(Ergebnis2 / 60))
       'Ergebnis 2 aufteilen für Stunden als Ergebnis 3

       Ergebnis4 = Ergebnis2 - (Ergebnis3 * 60)
       'Ergebnis 3 aufteilen für Minuten als Ergebnis 4

       lblErgebnisUmrechnungStunden.Text = (Ergebnis3) & ":" & (Ergebnis4)
       'Anzeige von Ergebnis 3 und 4 als Stunden:Minuten


       If txtEingabeArbeitstage.Text <> "" Then _
       Ergebnis5 = (Ergebnis2 * Convert.ToInt16(txtEingabeArbeitstage.Text))
       'Minuten mal Arbeitstage
       If txtEingabeArbeitstage.Text = "" Then MsgBox("Bitte tragen Sie eine Zahl für 'Arbeitstage' ein")
       'Leere Felder abfangen

       Ergebnis6 = CInt(Math.Floor(Ergebnis5 / 60))
       'Ergebnis 5 aufteilen für Stunden als Ergebnis 6
       'mit Math.Flor abrunden

       Ergebnis7 = Ergebnis5 - (Ergebnis6 * 60)
       'Ergebnis 5 aufteilen für Minuten als Ergebnis 7

       lblErgebnisGesamtStunden.Text = (Ergebnis6) & ":" & (Ergebnis7)
       'Anzeige von Ergebnis 6 und 7 als Stunden:Minuten

       Ergebnis8 = (Ergebnis6 * Convert.ToInt16(txtEingabeStundenlohn))
       'Stunden in Euro umrechnen

       Ergebnis9 = (Ergebnis7 * Convert.ToInt16(txtEingabeStundenlohn) / 10)
       ' Minuten in Euro umrechnen

       'Ergebnis10 = Ergebnis8 + Ergebnis9
       'Gesamtkosten zusammenrechnen

       lblErgebnisKosten.Text = (Ergebnis8) & "," & (Ergebnis9) & "€"
       'Anzeige von Ergebnis 6 und 7 als Stunden:Minuten
   End Sub


Der Fehler tritt auf bei Berechnung von Ergebnis 8.

Vielen Dank für Eure Tips!
Herzliche Grüße
Steve
 
swc
Newbie
Newbie

Anmeldedatum: 17.09.2011
Beiträge: 2

Thema Gelöst!
Verfasst am: 17.09.2011, 14:31

Das Problem hat sich erledigt.

an der entsprechenden Stelle fehlte beim konvertieren ".Text". Jetzt geht's!

Grüße
Steve
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: zahl

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 983 09.06.2011, 13:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2612 06.03.2008, 21:19
Keine neuen Beiträge ListView speichern & laden 1331 05.08.2008, 13:32
Keine neuen Beiträge Registry & Co Fragen 1203 03.05.2007, 10:57
Keine neuen Beiträge Listbox speichern & laden 2270 22.03.2007, 21:25
 


[ Time: 0.2889s ][ Queries: 85 (0.1285s) ][ GZIP on - Debug on ]