Schnellste effizienteste Methode zur Bestimmung des Dezimalwerts ist Integer in Java

8

Wenn eine doppelte Variable mit dem Namen sizeValue und sizeValue etwas anderes als 0 enthält, was ist der effizienteste Weg zu bestimmen, dass sizeValue einen Wert enthält, der eine ganze Zahl ist?

Momentan verwende ich

sizeValue% 1 == 0

andere schnellere Wege?

    
Shaun F 15.10.2009, 21:02
quelle

3 Antworten

6

versuchen Sie Math.ceil :

%Vor%

BEARBEITEN

Ich habe einige Benchmarks mit den folgenden Methoden gemacht:

%Vor%

isInt1 ist der schnellere von ihnen (auf einem sunjre 1.6)

    
dfa 15.10.2009, 21:10
quelle
3

Ich bin mir nicht sicher, ob es schneller geht, aber du könntest dein Double auf einen int setzen und auf Gleichheit prüfen:

%Vor%     
akf 15.10.2009 21:10
quelle
1

Warnung: Würden Sie 0.9999999999999999 als ganze Zahl betrachten? Wahrscheinlich nicht. Aber sieh dir das an:

%Vor%

Dies druckt:

%Vor%

Was problematisch ist, weil am Ende des Programms val etwas enthält, von dem Sie glauben, dass es ganzzahlig sein sollte, aber nicht.

Also würde ich meine Methode etwas langsamer (aber korrekter) machen, indem ich ein Delta wie JUnit einbaute tut:

%Vor%

und bieten natürlich die gleiche Methode mit einem vernünftigen Standard:

%Vor%

Jetzt gibt isInt(val) schließlich true zurück.

    
cherouvim 25.02.2010 05:44
quelle

Tags und Links