2010-12-29 8 views
2

Ich arbeite an einem Google Maps-Marker in JavaScript. Seine Höhe wird als google.maps.Point erstellt, der eine ganze Breite und Höhe haben muss.JavaScript: Erhalten Sie 90% einer Ganzzahl auf die nächste Ganzzahl?

Hier ist mein Problem. Ich möchte die Breite des Schattens des Markers 90% so groß wie die Höhe des Markers sein. Ich kenne die Höhe nicht im Voraus.

Wenn ich gesetzt:

var shadowDimensions = new google.maps.Point(height*0.9,height); 

und height*0.9 nicht eine ganze Zahl ist, dass ich einen Fehler.

Wie kann ich "height*0.9 auf die nächste ganze Zahl" in JavaScript definieren?

Danke!

Antwort

2

Verwenden Sie die Math.round() method, die auf die nächste ganze Zahl rundet versuchen wollen, mit 0,5 Fällen aufgerundet:

var shadowDimensions = new google.maps.Point(Math.round(height*0.9),height); 

zur Abrundung des nächsten eine kleinere ganze Zahl (für negative Zahlen, weg von Null) wird unter Verwendung von erreicht, und das Runden auf die nächstgrößere ganze Zahl (für negative Zahlen gegen Null) wird unter Verwendung von Math.ceil() erreicht. Siehe auch Wikipedia's article on rounding to an integer.

1

Hängt davon ab, was Sie am nächsten meinen, aber normalerweise werden Sie Math.round() verwenden. Alternativ können Sie Math.floor() (Abrunden) oder Math.ceil() (Abrunden) verwenden.

0
var an_int = Math.round(a_float); 

Siehe auch die Spezifikation für Math.round.

0

Ich weiß, dass Javascript eine Round-Funktion hat, erinnere ich mich nicht um die Syntax aus der Spitze von meinem Kopf.

Vielleicht so etwas wie:

var shadowDimensions = new google.maps.Point(Math.Round(height*0.9),height); 

oder vielleicht eine Decke/Boden-Funktion?

this helps

0

Sie könnten parseInt(height*0.9)

+0

Dies ist das gleiche wie 'Math.floor', was unerwartet sein kann. – eyelidlessness

Verwandte Themen