-2

我想将 1 转换为 1.0。

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

我该怎么做呢?

编辑:我只是要请求后端来解决这个问题,因为发布 4 而不是 4.0 应该没有问题,因为它们是相同的数字。

感谢大家的帮助。

4

3 回答 3

3

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

var x = 22.3;
x = ~~x;

这将导致 "x" 成为22,但它实际上仍然是一个浮点值。整数值在 的表达式求值期间存在~~x,但在存储该值时,它又返回到浮点数。(对不起,我编辑了虚假的表达。编辑不,也许没关系;仍然在第一杯咖啡......)

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

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

再次编辑——如果你发布一个 JSON 对象,那么一切都是字符串您应该使用 JSON 编码器来创建序列化版本,它会去掉没有数字的小数部分。您可以编写自己的序列化程序,但在此之前,您最好花一些时间弄清楚服务器端 JSON 解析器出了什么问题,导致它无法识别没有小数部分的有效数字。

于 2013-07-23T13:35:33.910 回答
0

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

于 2013-07-23T13:40:47.143 回答
-1

你可以使用 (1).toFixed(1) 如果你再次想要它作为一个整数然后使用 parseFloat((1).toFixed(1));

于 2013-07-23T13:52:34.493 回答