PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VisualBasic - Integerdivision



Expresseon
08.06.2009, 14:30
Ich dividiere mit VB zwei Zahlen, bsp. 297/256. Ergebnis ist 1, nicht 1,16. Ich brauche aber gerade letzteres Ergebnis und in einem anderen Projekt, wo der Code fast identisch ist von der Logik her (auch zwei Integers die dividiert werden), klappt es auch. Warum hier nicht?

Xardas der Dunkle
08.06.2009, 18:12
Ich kenne mich mit VB jetzt zwar nicht aus.
Aber in C und Java ist es so, das mindestens einer der Dividenten vom Typ double/flaot sein muss damit aus der Integer- eine Double-Division wird.

Das heißt falls es beides Variablen sind einen Wert umcasten und bei ner Zahl ist einfach direkt ein .0 hinten anhängen.


int var1 = 2;
int var2 = 4;
double var3;
var3 = var1 / (double) var2;
var3 = var1 / 2.0;

Jesus_666
08.06.2009, 19:46
Ich denke, in VB6 würde man das am besten machen, indem man eine der Variablen als Float (bin mir nicht sicher, ob VB6 Double kannte) deklariert. Unter VB.NET habe ich keine Ahnung; das ist eine komplett andere Sprache.

Krool
11.06.2009, 21:27
Keine Ahnung weshalb du Integer Variablen für eine Division nimmst.

Decimal:
14 bytes +/-79 228 162 514 264 337 593 543 950 335 ohne Dezimalpunkt;
+/-7,9228162514264337593543950335 mit 28 Stellen vor dem Komma; die kleinste Nicht-Null-Zahl ist +/-0,0000000000000000000000000001

Double:
(double-precision floating-point) 8 bytes -1,79769313486232E308 bis -4,94065645841247E-324 für negative Werte;
4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte

Single:
(single-precision floating-point) 4 bytes -3,402823E38 bis -1,401298E-45 für negative Werte;
1,401298E-45 bis 3,402823E38 für positive Werte

Integer:
2 bytes -32 768 to 32 767