Ich habe Zahlen Array: [1, 1.241241, 5.2133213]
Javascript Mathe mit Dezimalzahlen
hier ist Zahlen mit Punkt. Ich möchte sie teilen und nur so bleiben: [1, 1.2, 5.2]
Wie kann ich das machen?
Ich habe Zahlen Array: [1, 1.241241, 5.2133213]
Javascript Mathe mit Dezimalzahlen
hier ist Zahlen mit Punkt. Ich möchte sie teilen und nur so bleiben: [1, 1.2, 5.2]
Wie kann ich das machen?
Verwenden Number#toFixed
Methode.
var data = [1, 1.241241, 5.2133213];
// iterate and generate new array
var res = data.map(function(v) {
// check fractional part present if present remove
// the remaining part using toFixed and convert back to number
return Math.round(v) == v ? v : Number(v.toFixed(1));
})
console.log(res);
Danke. Ich habe versucht und es funktioniert –
@ NewUbuntuDeveloper: froh, zu helfen –
for (var i=0 ; i < a.length ; i++) {
if (parseInt(a[i]) != a[i])
a[i] = Number(a[i].toFixed(1));
}
Das Snippet oben (ich hoffe, das ist, was Sie gesucht haben) nur Zahlen ändern, die keine ganzen Zahlen sind - und gerade ihre erste Stelle zurückkehren ..
Was ist falsch an sich ändernden Ganzzahlen? 'var x = 5; Number (x.toFixed (1)) 'ist immer noch' 5'. JavaScript unterscheidet nicht zwischen Integer- und Float-Typen - sie sind alle gleich. Wenn eine Zahl zufällig einen Bruchteil hat, wird sie angezeigt, andernfalls nicht. Daher wird '5.0 === 5' 'wahr' zurückgeben, weil sie beide die gleiche Sache sind. – vlaz
Ich weiß das - aber in der Frage - er wollte, dass 1 bleiben 1 und nicht zu 1.0 werden – ItayB
Es wird nicht '1.0'. Genau das habe ich gesagt. Ernsthaft kopiere einfach und kopiere das und sieh dir an, was du bekommst. 'Var x = 5; Nummer (x.toFixed (1)) '. Oder noch besser, rufen Sie einfach 'console.log (1.0)' und sehen Sie, ob Sie '1.0' erhalten. – vlaz
Mit Schleife und toFixed:
var x = 0;
var len = my_array.length;
while(x < len){
my_array[x] = my_array[x].toFixed(2);
x++;
}
Diese Ihre Eingabe nehmen und bestimmen zunächst, ob es sich um ein Schwimmer ist, da Sie ganze Zahlen geändert werden nicht wollen.
cropNum(1);
cropNum(1.241241);
cropNum(5.2133213);
function cropNum(n) {
if (Number(n) === n && n % 1 !== 0) {
return parseFloat(Math.round(n * 100)/100).toFixed(1)
}
return n;
}
// returns:
// 1
// 1.2
// 5.2
var a=[1, 1.241241, 5.2133213];
var b=[];
for(var i = 0; i < a.length; i++){
c = a[i].toFixed(1);
b.push(c);
} console.log(b);
was haben Sie versucht? – ItayB
JavaScript String Slice, aber es funktioniert nicht –
Sie wäre besser dran in die 'toFixed' Methode: http://www.w3schools.com/jsref/jsref_tofixed.asp – enhzflep