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

Javascript 将1整数转换为1.0-(不能是字符串),javascript,Javascript,我想将1转换为1.0 我知道.toFixed()方法,但它会将其转换为字符串。我需要它是一个整数 我该怎么做 编辑:我只是想请求后端对此进行分类,因为发布4而不是4.0应该没有问题,因为它们是相同的数字 感谢大家的帮助。在JavaScript中,整数只存在于瞬态情况中。您可以通过使用某些位运算符的无运算组合来强制执行一个操作: var x = 22.3; x = ~~x; 这将导致“x”为22,但它实际上仍然是一个浮点值。整数值在~~x的表达式求值过程中存在,但当存储该值时,它会返回到浮点。(

我想将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中,整数和浮点数之间没有分隔。只有s。所以当你在变量中保存你的1时,他实际上是1.0。要在屏幕上表示它,必须使用.toFixed()。正如你所说,这是一个字符串表示法。如果你想计算像1+2.8这样的结果,你会得到3.8

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

1
已经是一个整数:)是的,但我如何将其转换为1.0?后端要求它是这种格式的整数,这就是为什么。后端将始终以字符串形式接收数字,并且(正如我在回答中所述)JS没有
float
类型,只有
Number
传输总是一个字符串,我猜OP是以JSON的形式发送的,不需要JSON的字符串数据类型。换句话说,十进制格式的数字不带引号,这是有效的JSON<代码>{“foo”:42.0}而如果使用OP
.toFixed()
,它将以
{“foo”:“42.0”}
结束。如果OP能让我们知道就好了。@CrazyTrain是的,OP评论说它是JSON。当然,如果OP使用标准的JSON序列化工具可能是最好的,这些工具不会包含整数的小数部分。这是正确的,我将数据作为JSON post对象发送。@user971824您的问题令人困惑。也许你可以解释为什么你的服务器端代码坚持要求数字有小数部分,而没有小数部分是必需的。@Pointy:是的,这似乎就是问题所在。后端似乎需要十进制。
parseFloat((1).toFixed(1))返回1