Forum: Mikrocontroller und Digitale Elektronik Bascom Nachkommastellen runden in ganze Zahl


von Helmut K. (bird1)


Lesenswert?

Hallo alle zusammen,

habe ein Problem mit dem runden bzw Variable in
ganze Zahl um zuwandeln.

Dim Grad As Single
Dim Auswahl As Single

in der Variablen Grad steht z.B. die Zahl 338.123456789
diese möchte ich in die Variable Auswahl als ganze Zahl
speichern. Versucht habe ich es mit Auswahl = Int(grad)
bekomme aber dann als Ergebnis 338.0

Mit diesem Wert kann ich dann mit

   Select Case Auswahl
      Case 60 Print "60Grad"
      Case 120 Print "120Grad"
      Case 180 Print "180 Grad"
   End Select

nicht weiter machen.

Hat jemand eine Idee wie man das lösen kann?

Viele Grüße Helmut
von Werner (Gast)


Lesenswert?

Wozu brauchst du bei Temperaturen überhaupt Floatingpoint Variablen?
Du verschenkst nur Genauigkeit wegen des Speicherbedarfs des Exponenten 
;-)
Und ein "="-Vergleich mit Floating-Point geht meist sowieso schief, d.h. 
ist bis auf wenige Ausnahmen (z.B. 0.0) kaum erfolgreich, wenn du nicht 
sehr genau weißt, was du tust. Wie so damit Select funktionieren?

Mit 16-Bit Integervariablen bist du für Temperaturen i.A. besser 
gerüstet.
(Einheiten von 1/10°C, 1/100°C, 1/16°C, 1/256°C oder ...)
von Michael (Gast)


Lesenswert?

Helmut K. schrieb:
> Hat jemand eine Idee wie man das lösen kann?

Was möchtest du denn erreichen? Bei 60.0000°C, wenn es das als 
Single-Zahl überhaupt genau gibt, den Text "60 Grad" auszugeben, bei 
59.9999 oder 60.0001 aber nicht, ist wohl wenig praktisch.
von Klaus D. (kolisson)


Lesenswert?

Schau mal in der Hilfe nach Round.

var = ROUND( x )

Klaus
von Gerhard K. (mikros)


Lesenswert?

Hallo

Dann mach doch einfach Auswahl als Word od. Integer


MfG
von Bild (Gast)


Lesenswert?

dim Auswahl as Integer

Auswahl = Grad            'das schneidet dann die Nachkommastellen ab

besser:


Grad = Grad + 0.5
Auswahl = Grad             'Rundet auf eine Nachkommastellee
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.