PDA

Vollständige Version anzeigen : VB-Programmierung - Typkonvertierung


computercomponents.at
15.10.2001, 12:12
Ich habe folgendes Problem:

Ich soll eine Berechnung durchführen, welche die Differenz von der Sollarbeitszeit zur Istarbeitszeit berechnet. Diese soll wie folgt funktionieren:

(Arbeitsende - Arbeitsbeginn) - ((Mittagspause - Sollarbeitszeit)/24)

Das Problem besteht darin, das es sich bei Arbeitsende und Arbeitsbeginn um Datumswerte handelt, jedoch bei Mittagspause und Sollarbeitszeit um Zahlenwerte (Daher die Division durch 24). Allerdings kann es nun vorkommen, das ein Wert wie "5,22916666668607E-02" als Ergebnis herauskommt. Dieser Wert läßt sich sehr wohl umwandeln in das Zeitformat. Allerdings nutze ich die Left()-Funktion um etwaige Tage herauszufiltern. Diese Funktion gibt mir allerdings hier den Wert 5 zurück.

Gibt es hier eine Möglichkeit um die Kommaverschiebung rückgängig zu machen?

Hilfe DRINGEND benötigt.

neohacker
15.10.2001, 12:22
Hi!

Bei der Leftfunktion kannst Du durch eine Zusatzangabe mit einer Ziffer bestimmen wieviele Stellen von links er dir zurückliefern soll.
oldstring = 5,456678
newstring = left (oldstring, 3)
dann hat newstring den Wert "5,45"

War's das oder hab ich dich falsch verstanden??

computercomponents.at
15.10.2001, 12:26
Leider wars das nicht! Den Durch das E-02 wird angezeigt, daß das Komma um 2 Stellen verschoben wurde. Der Richtige Wert heißt 0,0522916666668607 und nicht 5,22916666668607. Also müsste ich jedesmal nachschauen ob ein E in der Zahl enthalten ist und den Wert danach auslesen.

Allerdings müsste hier doch eine Funktion vorliegen, denn die Funktion Formatdatetime reagiert ja auch richtig.

kama
15.10.2001, 12:42
VBA
Ccur((Arbeitsende - Arbeitsbeginn) - ((Mittagspause - Sollarbeitszeit)/24)*100)/100

In steuerelementen
=ZCurrency(((Arbeitsende - Arbeitsbeginn) - ((Mittagspause - Sollarbeitszeit)/24)*100)/100
spukt dir deine Zahl als auf zwei stellen gerundete Zahl aus.