停止浮点操作

问题描述:

我正在显示一个文本值,如果碰巧文本值碰巧是数值,那么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

您可以使用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