将1整数转换为1.0 - (不能是字符串)

时间:2013-07-23 13:32:03

标签: javascript

我想将1转换为1.0。

我知道.toFixed()方法但是这会将它转换为字符串。我需要它是一个整数。

我该怎么做?

编辑:我只是要求后端对此进行排序,因为发布4而不是4.0应该没有问题,因为它们是相同的数字。

感谢大家的帮助。

3 个答案:

答案 0 :(得分:3)

整数仅存在于JavaScript中的瞬态情况中。您可以通过使用某些按位运算符的无操作组合强制一个:

var x = 22.3;
x = ~~x;

这将导致“x”为22,但它仍然是一个浮点值。在~~x的表达式求值期间存在整数值,但是当存储该值时,它返回到浮点。 (对不起,我编辑了伪造的表达。编辑没有,也许没关系;还是第一杯咖啡......)

请注意,~~是按位“not”操作的两个应用程序,它将保留原始数字的(整数)值。

编辑 - 关于将值发布到后端代码的意见,了解HTTP参数本质上是字符串;也就是说,数值呈现为十进制数字的字符串(可能还有小数点,符号,指数等)。因此,为此目的,.toFixed()与其他任何东西一样好。一旦HTTP参数到达服务器,就可以在那里进行编码,将参数值解释为数字。

再次编辑 - 如果您要发布JSON对象,那么仍然所有内容都是字符串的情况。您应该使用JSON编码器来创建序列化版本,并且它将省略没有的数字的小数部分。您可以编写自己的序列化程序,但在此之前,最好花点时间弄清楚服务器端JSON解析器的错误,使其无法识别没有小数部分的有效数字。

答案 1 :(得分:0)

在JavaScript中,您没有整数和浮点数之间的分隔。只有Number个。因此,无论何时将1保存在var中,他实际上都是1.0。要在屏幕上表示它,您必须使用.toFixed()。正如你所说,这是一个字符串表示。如果你想计算1 + 2.8之类的东西,你将得到3.8。

答案 2 :(得分:0)

你可以使用(1).toFixed(1) 如果你再次想要它作为整数,那么使用parseFloat((1).toFixed(1))更改它;