2016-10-24 47 views
0

我有這個簡短的腳本的問題。腳本必須顯示像這樣的數字10 987.23或10 987(在點或不點之後的2個符號),但是顯示NaN。我究竟做錯了什麼?Javascript分離和裁剪和圓形數字

<script> 
var dohzavershen = "10 987.23456457457"; // corrected 
dohzavershen = dohzavershen.replace(/.+?(?=\D|$)/, 
    function(f) { 
    return f.replace(/(\d)(?=(?:\d\d\d)+$)/g, "$1 ") 
    ;} 
); 

document.write(Number(dohzavershen).toFixed(0)); 

<script> 
+0

你正在將一個字符串轉換成不是數字的有效表示,然後嘗試將其解析爲數字。這就是你得到NaN的原因。 – JLRishe

+0

@JLRishe但是在這個字符串中是一個數字(var dohzavershen =「10 987.2345789099888」; –

+0

它在JavaScript中仍然不是一個有效的數字,數字中不能有空格'Number(「10 987.23456457457」)' NaN'。 – JLRishe

回答

0
var dohzavershen = "10 987.23456457457"; // corrected 

function formatter(n, k) { 
    var split = n.split('.'); 
    if (split.length > 1) { 
     split[split.length-1] = split[split.length-1].substring(0, k); 
    } 
    return k > 0 ? split.join('.') : split[0]; 
} 

formatter(dohzavershen, 2) 

這樣的事情可能會奏效。但請注意,這並不是取整數字,而是選擇小數點後的前兩位數字。 k> 0只是爲了確保你沒有得到「1234」,你可以用你認爲合適的方式來處理它

+0

謝謝,但沒有工作。圓對我來說很重要。這是一個問題..這個完整的代碼「」「var oriprice = $ origprice; \t \t document.write(Number(oriprice).toFixed(0));」「」工作完美但不捨入數字.. –

+0

我不知道如何解決我的問題( –

+0

你是什麼意思沒有工作?我認爲你的號碼之間的空間是重要的。在那個地方試圖將它轉換爲數字將無法正常工作。 – jssridhar