2016-05-12 95 views
-2

所以我有一個數字,如5467.我希望我的代碼返回546如何返回排除最後一位數字的號碼?

我試圖採取的最後一個數字,並從原來的數減去它,但我得到5460,而不是546

+0

將其轉換爲字符串並執行子字符串。 :) –

回答

1

聽起來像你還需要分我10.你可以做這樣的事情:

var number = 5467; 
number = number - (number % 10); // This will subtract off the last digit. 
number = number/10; 
console.log(number); // 546 

我們首先使用模運算符%拿到最後一個數字,我們從number減去它。這減少了從5467到5460.數我們砍掉最後一位(這是保證是0),我們除以10,並獲得546

寫更簡潔,你可以這樣做:

number = (number - (number % 10))/10; 
+0

它現在的作品,現在我想重複這個過程,直到我的答案是少於30歲。我如何做一個while循環 – Mike

+0

只要'while(number> = 30){number =(number - (number%10) )/ 10; }' – winhowes

2

結合/%

(5467 - (5467 % 10))/10 
1

有幾件事情你可以做最簡潔的幸福:

Math.floor(num/10); 

或者,轉換爲字符串,刪除最後一個字符轉換回數字。

parseInt(num.toString().slice(0, -1)); 
+0

第一個可以簡化爲'num/10 | 0',它可以處理字符串和數字。 – RobG

+0

也''(num/10);':) – Damon

+0

但是,這是另外兩個字符!你會殺死互聯網! ;-) – RobG

0

我不介意一些其他的答案,但我覺得這可能太固定了它是一個數字。

這是什麼,但你想刪除最後一位數字/字符,不管數字,爲什麼不是substr?

http://www.w3schools.com/jsref/jsref_substr.asp

var s = 5467; 
s = s.toString().substr(0, s.toString().length - 1); 
console.log(s) 

或更容易:

var s = (5467).toString(); 
s = s.substr(0, s.length - 1); 
console.log(s) 

這些不考慮到個位數的,所以在經過1將返回空白。爲了回答這個問題,你可以簡單地做這樣的檢查:

var s = (1).toString(); 
if(s.length > 1) 
    s = s.substr(0, s.length - 1); 
console.log(s) 

此外,類似問題:

Remove last digits from an int

Remove the last digits of a number (not string)

Removing the last digits in string

+0

請不要參考w3schools,那裏的信息一般都很差。使用ECMA-262或MDN。 – RobG

2

如果字符串表示將爲好你接着另一種方式是

var num = 5467, 
    cut = (num/10).toFixed(); // <-'547' 

呃...警告..!如有必要,我必須說toFixed()方法輪。所以在這個特定的例子中它不起作用。

0

要截斷從右手側的數字,直到數量小於30,保持10分和向下取整,直到達到合適的值:

var n = 12341235; 
 

 
while (n > 30) n = n/10|0; 
 

 
document.write(n);

的大於並且劃分操作將強制n爲一個數字,所以它可以是數字或字符串。如果ToNumber(n)結果的NaN(例如n = 'foo'),那麼Ñ值不被修改。

0

你可以簡單地除以10的數量和parseInt()

var num = 5467; 
num = parseInt(num/10); 

更新:

,直到答案是小於30重複這一過程,使用while環路

var num = 5467; 
 

 
while(num >= 30) { 
 
    num = parseInt(num/10); 
 
} 
 

 
document.write(num);

相關問題