我需要获取用户输入值并将其强制为6位小数,即使该值是整数。例如,用户输入12,我需要将其转换为12.000000
,将转换为数字。这不是出于显示目的 - 我的应用另一端的系统需要十进制值,而我无能为力。
正如我在其他地方读到的那样,Javascript中的数字都是64位浮点数,因此看起来不应该这么困难。
唉,此处toFixed
不是一个选项,因为它给了我一个字符串值'12.000000'
。我尝试过的每一个其他技巧只产生没有小数零的整数12
(例如用toFixed
包裹Number
,将字符串值除以1,以及其他类似的愚蠢)。
是否可以在Javascript中将整数表示为float,而不是以字符串值结尾?
更新
感谢所有的评论和答案。对我来说不幸的是,@ Enzey的评论实际上回答了我的核心问题,他说强制精确只能用字符串来完成。如果他提出作为答案,我会接受它。我有目的地模糊了我的实施细节,因为我不想进入为什么我想做我正在做的事情,我只是想知道它是否可能。但我想我最终让人混淆了。对不起。
答案 0 :(得分:1)
唉,JavaScript中没有float
或int
这样的东西。您只有Number
,其中没有关于12
和12.000000
之间差异的任何线索。
答案 1 :(得分:0)
如果您将其作为字符串化的JSON发送,则可以对该号码使用.toFixed
,然后删除"来自字符串化JSON中的数字的符号:
var result = JSON.stringify({
number: (12).toFixed(6)
})
.replace(/"[\d]+\.\d{6}"/g, function(v) {
return v.replace(/"/g, '');
});
console.log(result);