PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage an alle mit Visual Basic 6.0-Erfahrung


Bloody Judge
2003-03-13, 19:12:07
Hallo!

Ich suche nach einem Befehl, der es mir ermöglicht, eine Variable, z.B."X", die als Single deklariert ist, zu kürzen. Und zwar sollen alle Zahlen nach der 1.Nachkommastellen einfach abgeschnitten werden (NICHT gerundet!!!).

Beispiel:

X hat den Wert 2.65. Ich möchte nun aus der 2,65 eine 2.6 machen

oder

X hat den Wert 1.6666666 Ich möchte nun daraus eine 1.6 machen

Wie kann ich das realisieren?

Danke

Bloody Judge

Henrik
2003-03-13, 19:41:38
.int (steht in meinem mathebuch ;D)

stabilo_boss13
2003-03-13, 19:53:25
Originally posted by Bloody Judge
Hallo!

Ich suche nach einem Befehl, der es mir ermöglicht, eine Variable, z.B."X", die als Single deklariert ist, zu kürzen. Und zwar sollen alle Zahlen nach der 1.Nachkommastellen einfach abgeschnitten werden (NICHT gerundet!!!).

Beispiel:

X hat den Wert 2.65. Ich möchte nun aus der 2,65 eine 2.6 machen

oder

X hat den Wert 1.6666666 Ich möchte nun daraus eine 1.6 machen

Wie kann ich das realisieren?

Danke

Bloody Judge

Hier zwei mögliche Lösungsansätze:
Hier wird der Wert zunächst in einen String umgewandelt und dann mit den entprechenden Funktionen gekürzt. Das Ergebnis wird dann wieder in einen Double kovertiert.

Dim sTemp$, dWert#, iLaenge%, iPos%

iLaenge=1 ' Anzahl der Nachkommastellen
dWert=2.56789 ' der abzuschneidende Wert
sTemp=(Trim(Str(dWert)) ' sTemp ist jetzt "2.56789"
iPos=Instr(sTemp,".") ' Position des Dezimalzeichens
sTemp=Left(sTemp,iPos)+Mid(sTemp,iPos+1,iLaenge) 'sTemp ist jetzt "2.5"
dWert=Val(sTemp) ' und jetzt wieder zurück als Double


oder (elegant) :)


Dim dWert#

dWert=2.56789 ' der abzuschneidende Wert
dWert=Int(dWert*10)/10 ' dWert = 2.56789 * 10 = 25.6789 davon Int = 25 / 10 = 2.5


@_3dfx_rulez
Nach der ersten Kommastelle nicht davor!

Bloody Judge
2003-03-14, 10:01:11
@stabilo_boss: Vielen Dank, hat wunderbar funktioniert!!!