2014-03-02 25 views
1

我已經創建了一個代碼,我可以嘗試javascript的條件,代碼如下所示:用戶輸入一個十進制數,並且一個警報框會說它是一個十進制數數字。如果它不是十進制數字,將彈出一個警告框並說明它不是十進制數字。但是,問題是我不知道如何在我的IF條件語句中確定它的小數。如何識別輸入,如果其在javascript中的小數點

這裏是我的代碼:

var a = document.getElementById("txt1").value; 

if (a == ?){ 
    alert("It is a decimal number!"); 
} else { 
    alert("It is not a decimal number!"); 
} 

我希望有人能幫助我。一個初學者。謝謝!

+2

http://stackoverflow.com/questions/2304052/check-if-a-number-has-a-decimal-place-is-a-whole-編號 – sinisake

+0

'if(/^- ?\ d +(\。\ d +)?$ /。test(input))'這可能對您來說已經足夠好了。谷歌也從未受傷。 – gdoron

+1

我認爲你用'decimal'表示的意思會有所幫助。某些用戶可接受的輸入和不可接受的輸入示例。編輯你的問題,你甚至可以獲得徽章。 – Xotic750

回答

-2

您可以使用一個簡單的檢查

if(a != Math.floor(a)) 
{ 
    alert("It is a decimal number!"); 
} else { 
     alert("It is not a decimal number!"); 
} 

if(a - Math.floor(a) != 0) //then its with decimal 
{ 
    alert("It is a decimal number!"); 
} else { 
    alert("It is not a decimal number!"); 
} 
+0

因爲什麼時候是''Hello World''一個十進制數? –

+0

考慮一種情況,用戶在輸入中傳遞一些數字 –

+0

問題是如何攔截未輸入十進制數字的用戶。 '「Foo」'不是十進制數字,但是你的代碼不會攔截它。因此這是錯誤的。 –

1

優雅的方式是使用正則表達式,但有時正則表達式 挫折新手程序員。檢查這個例子。我希望它能幫助你。

var a = document.getElementById("txt1").value; 

if (!isNaN(parseFloat(a)) && a.toString().indexOf(".") == -1){ 
    alert("It is a decimal number!"); 
} else { 
    alert("It is not a decimal number!"); 
} 

最好的問候,

-1
 function decimal_only(e) { 

     var charCode = (e.which) ? e.which : window.event.keyCode 
     if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { 
      return false; 
     } 

     if (charCode == 46) { //Now Check The Decimal only allow 1 decimal 
      if (e.value.indexOf('.') > -1) { 
       return false; 
      } 
     } 
     return true; 
    } 
相關問題