Frage

Was ist der Unterschied zwischen ASP/VBScript? Int() Und CInt()?

War es hilfreich?

Lösung

Die Int-Funktion gibt den ganzzahligen Teil einer angegebenen Zahl zurück.

Die CInt-Funktion konvertiert einen Ausdruck in den Typ Integer.

Und die beste Antwort kommt von MSDN

CInt unterscheidet sich von den Funktionen Fix und Int, die den Bruchteil einer Zahl abschneiden und nicht runden.Wenn der Bruchteil genau 0,5 ist, rundet die CInt-Funktion ihn immer auf die nächste gerade Zahl.Beispiel: 0,5 Runden auf 0 und 1,5 Runden auf 2.

Andere Tipps

Und der wichtigste Unterschied (zumindest IME) ist, dass CInt Überlauf bei 32.767.

Hier ist ein weiterer Unterschied:

Skript:

wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)

Ergebnis:

4091
4090   (????)
4091

Irgendwelche Gedanken?

Die übliche Lösung für dieses Problem besteht darin, manuell eine Neurundung zu erzwingen.Dieses Problem ist so alt wie FORTRAN.

Anstatt

a = int(40.91 * 100)

Verwenden

b = 40.91 * 100
a = int(b + 0.5)

Sehr alter Trick, der in Excel-Tabellen von Zeit zu Zeit immer noch nützlich ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top