2012-02-07 51 views
0

我正在顯示一個文本值,如果碰巧文本值碰巧是數值,那麼JavaScript會用小數點顯示它.0。停止浮點操作

問:我怎樣寫:

if (X is numeric) { 
    $('#Status').text(+X); 
} else { 
    $('#Status').text(X); 
} 
+0

這是很難理解你在這裏得到什麼。如果數字是數字,你希望在數字前加一個「+」加字符,否則只要打印任何已分配了「X」的字符? – Bojangles 2012-02-07 19:46:35

+0

你可能想看看['parseInt()'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt)和['parseFloat()'](https:// developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseFloat)取決於您的需求。 – Bojangles 2012-02-07 19:47:27

+0

你的問題不清楚。如果X是一個刺痛值「9999.0」,並且你希望在你的字段中顯示爲「9999」,那麼你需要一個不同於你所要求的解決方案,因爲你必須首先將它解析爲一個數字,然後截斷小數點位置。請通過指定一組X輸入值以及您想要顯示的輸出來澄清。對於輸入是字符串還是實際的JavaScript數字要非常具體。 – jfriend00 2012-02-07 20:00:50

回答

1

您可以使用typeof確定值的類型,一個變量存儲:

if (typeof(X) == 'number') { 
    $('#Status').text(+X); 
} else { 
    $('#Status').text(X); 
} 

很酷的事情有關typeof的是,它總是返回一個字符串,所以即使你正在檢查的變量沒有設置,你只會得到字符串undefined

這裏有一些很好的文檔爲typeofhttps://developer.mozilla.org/en/JavaScript/Reference/Operators/typeof

+0

不幸的是,它返回「字符串」,即使值是:「9990.0」 – 2012-02-07 19:53:42

+0

您可以parseInt(x,10);那個男孩就在那裏...即使我沒有完全掌握你想要完成的事情。 – Relic 2012-02-07 19:54:48

+0

是的,parseInt(x,10)的作品。謝謝! – 2012-02-07 20:04:07