2017-01-09 2 views
2

Ich befülle gerade ein div mit jquery aber muss die Ausgabe mit einem Tausendertrennzeichen und zwei Dezimalstellen formatieren, während die Ausgabe auch als Zahl gehalten wird.Format Nummer mit Tausenden Seperator und 2 Dezimalstellen

FYI bin ich zur Zeit die div bevöl mit:

var prev_count = 120; 
var new_count = 20.50; 

    var count_till = prev_count < new_count ? new_count : new_count - 1; 
    jQuery({ Counter: prev_count }).animate({ Counter: count_till }, { 
     duration: 600, 
     easing: 'swing', 
     step: function() { 
      jQuery("#count_div").text(Math.ceil(this.Counter)); 
     } 
    }); 

Startgröße ist 120, und dies sollte bis 20.50 abzulaufen jedoch auf 20 endet, nicht 20.50, ist dies möglich, wenn dies der Fall wäre, wie ich gehe darüber?

Hier ist meine jsfiddle

+0

Rory McCrossan, diese hat nichts mit Geld zu tun !? – user1419810

+0

hinzugefügt die aktuellen Ein- und Ausgänge – user1419810

+0

Welches Plugin benutzen Sie? – Justinas

Antwort

1

Math.Ceil kehrt die kleinste ganze Zahl größer als oder gleich einer bestimmten Zahl. Integers do not have fractions (das ist, was Sie suchen)

Sie benötigen würde Ihre Linie zu ersetzen, wo Sie geben die Anzahl an dieses:

jQuery("#count_div").html(this.Counter.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')); 

hier ein Arbeits JSFiddle ist: https://jsfiddle.net/12g2pj4L/2/

+0

Aber ich will immer die Antwort auf 2 Dezimalstellen, würde das nicht nur eine Dezimalzahl erreichen, wenn man sagt, dass 20,5 als Ziel verwendet wurde? – user1419810

+0

@ user1419810 siehe aktualisierte Antwort :) – zerohero

0

Ok, so habe ich es geschafft, diese zu lösen mich im Tausender-Trennzeichen hinzufügen, um eine Funktion und auch toFixed (2), um die Dezimalstellen zu setzen, Code wie folgt:

$.fn.digits = function(){ 
    return this.each(function(){ 
     $(this).text($(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); 
    }) 
} 

var prev_count = "1125"; 
prev_count = prev_count.split(',').join(''); 
prev_count = parseInt(prev_count); 

var new_count = 1320.50; 

var count_till = prev_count < new_count ? new_count : new_count; 
jQuery({ Counter: prev_count }).animate({ Counter: count_till }, { 
    duration: 7000, 
    easing: 'swing', 
    step: function() { 
    jQuery("#count_div").html(this.Counter.toFixed(2)).digits(); 

    } 
}); 

und Geige here

Verwandte Themen