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

Convert 1 integer to 1.0 - (must not be string)

本文关键字:不能 字符串 1个 整数 转换      更新时间:2023-09-26

我想将1转换为1.0。

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

我该怎么做?

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

谢谢大家的帮助。

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

var x = 22.3;
x = ~~x;

这将导致"x"为22,但它实际上仍然是一个浮点值。在~~x的表达式求值过程中存在整数值,但当存储该值时,它会返回到浮点。(对不起,我删掉了这个假表情。编辑不,也许还可以;还在喝第一杯咖啡…)

注意,~~是按位"not"运算的两个应用程序,它将保留原始数的(整数值)。

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

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

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

您可以使用(1).toFixed(1)如果您再次希望它是一个整数,则使用parseFloat((1).toFixed(1))更改它;