在Javascript中强制使用十进制值,即使是整数

Force decimal value, even on integers, in Javascript

本文关键字:十进制 即使是 整数 Javascript      更新时间:2023-09-26

我需要获取一个用户输入的值,并将其强制设置为小数点后6位,即使该值是整数。例如,用户键入12,我需要将其转换为12.000000作为数字。这不是为了显示——我的应用程序另一端的系统需要十进制值,我对此无能为力。

正如我在其他地方读到的,Javascript中的数字都是64位浮点数,所以看起来这应该不是那么困难。

唉,toFixed在这里不是一个选项,因为它给了我一个字符串值'12.000000'。我尝试过的所有其他技巧都只产生没有十进制零的整数12(例如用Number包装toFixed,将字符串值除以1,以及其他类似的愚蠢行为)。

是否有可能在Javascript中将整数表示为浮点数,而不以字符串值结束?


感谢所有的评论和回答。不幸的是,@Enzey的评论实际上回答了我的核心问题,他说强制精度只能用字符串来完成。如果他提出这个答案,我就接受。我故意对实现的细节保持模糊,因为我不想知道为什么我想做我正在做的事情,我只是想知道它是否可能。但我想我只是把大家弄糊涂了。不好意思

唉,JavaScript中没有floatint这样的东西。您只有Number,它对1212.000000之间的差异没有丝毫的了解。

如果您将其作为字符串化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);