Frage von Selector3, 29

VB.net - PictureBox Width adden unter 0.5 nicht möglich?

Und zwar benutze ich folgenden Code:

PictureBox1.Width += 0.5

Um einen manuellen Ladescreen zu erzeugen. Allerdings ist die Zahl 0.5 anscheinend zu klein, alles darüber (bsp. 0.51) funktioniert und die PictureBox erhöht ganz normal die Breite. Hat jemand den Grund dafür oder gibt es noch andere Gründe?

Antwort
von DrErika, 13

Sieht mir fast so aus, als würde das System auf Integer runden. Oder ist "width" vielleicht schon gleich Integer?

Kommentar von Selector3 ,

Width ist bereits Integer. Aber 0,5 würde doch theoretisch auf 1 gerundet werden, oder nicht? Unter 0,5 wäre es wiederrum logisch. Aber dennoch, wieso versucht das System zu runden? Ich habe keine Anweisung die dies verursachen würde. Ist doch unpraktisch sowas. Kennst du denn eine Methode dies zu umgehen?

Kommentar von DrErika ,

Naja, genaugenommen rundet das System dann nicht, sondern schneidet schlicht die Nachkommastellen ab (sowas wie Math.floo), wenn du eine Zuweisung auf einen Integer machst. Deswegen wunderte es mich, dass 0.51 geht, 0.5 aber nicht - daher vermutete ich, der Compiler würde runden...

Kommentar von Selector3 ,

Schon gut, habe das Problem gelöst. Ich brauche nicht unbedingt Kommazahlen addieren:

Ich nehme einfach Variable x und addiere immer die Konstante y (0.5) dazu. Dann setze ich die Width der PictureBox mit der Variable x gleich, nehme aber nur die erste Ziffer, keine Nachkommastellen.

Also:

x += y
PictureBox1.Width = Math.Round(x, 0)

Aber trotzdem danke, dass du mich darauf hingewiesen hast, dass es ein Integer ist der automatisch gerundet wird.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten