Javascript parseFloat不使用小数点后的零

Javascript parseFloat不使用小数点后的零,javascript,jquery,floating-point,numbers,precision,Javascript,Jquery,Floating Point,Numbers,Precision,我有一个文本框,从这个文本框中,我需要向api传递一个浮点值 现在,当文本框中的值为“18.575”或“18.09483”时,一切正常 但如果值为“18000”,则无法正常工作。我知道18.000与18相同,但我需要精确数字 所以问题是我需要的是JavaScript中的精确18.00,而不是18 我试过了 a) parseFloat parseFloat("18.000"); // I get 18 b) toFixed (18).toFixed(2) // I get `"18.00

我有一个文本框,从这个文本框中,我需要向api传递一个浮点值

现在,当文本框中的值为“18.575”或“18.09483”时,一切正常

但如果值为“18000”,则无法正常工作。我知道18.000与18相同,但我需要精确数字

所以问题是我需要的是JavaScript中的精确18.00,而不是18

我试过了

a) parseFloat

  parseFloat("18.000");  // I get 18
b) toFixed

 (18).toFixed(2) // I get `"18.00"` but it is string and doesn't solve the purpose.
c) 数字

数字(“18.00”)//给出18而不是18.00

提前感谢您的帮助

试试看

parseFloat((18).toFixed(2))

原生JSON不提供指定浮点精度的方法,您可以通过操纵编码的JSON字符串来解决这个问题,如

数据={
某物:18
};
json=json.stringify(数据、函数(键、值){
if(类型(val)=“编号”)
返回“”;
返回val;
}).替换(/“/g”);

document.write(json)
在表达式中使用时,使用数字,向用户显示时使用字符串。数字
18.000
与数字
18
完全相同。换句话说,这两者的内部表示是完全相同的。二进制浮点表示法无法保留精度信息。您必须找到一个定点库。@Tushar,我尝试了数字,但它也不工作。18.00只能作为字符串存在。作为一个数字或浮点数,它是18。然后你必须使用字符串,而不是数字,解析数字几乎没有什么用处sense@shankaranand它不工作,它正在转换为string添加和删除分隔符有什么意义?回调函数不能只返回
.toFixed()
的(字符串)结果吗?@Pointy:问题不是很清楚,但我猜它们的后端(可能是用php编写的)要求浮点值始终包含小数点。因此,无论是
“foo”:“18.00”
还是
“foo”:18
都不起作用。对,但是
.toFixed()
已经返回了一个字符串,而不是一个数字。如果没有分隔符,我将得到
“foo”:“18.00”
,而我需要json中的
“foo”:18.00
。但是。。。当使用分隔符时,无论如何,JSON中都会出现
“18.00”
。如果不是,那就没有意义了,因为我们回到了数字表示的问题上。