在Javascript中强制十进制值,甚至是整数

时间:2016-10-27 20:03:34

标签: javascript

我需要获取用户输入值并将其强制为6位小数,即使该值是整数。例如,用户输入12,我需要将其转换为12.000000,将转换为数字。这不是出于显示目的 - 我的应用另一端的系统需要十进制值,而我无能为力。

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

唉,此处toFixed不是一个选项,因为它给了我一个字符串值'12.000000'。我尝试过的每一个其他技巧只产生没有小数零的整数12(例如用toFixed包裹Number,将字符串值除以1,以及其他类似的愚蠢)。

是否可以在Javascript中将整数表示为float,而不是以字符串值结尾?

更新
感谢所有的评论和答案。对我来说不幸的是,@ Enzey的评论实际上回答了我的核心问题,他说强制精确只能用字符串来完成。如果他提出作为答案,我会接受它。我有目的地模糊了我的实施细节,因为我不想进入为什么我想做我正在做的事情,我只是想知道它是否可能。但我想我最终让人混淆了。对不起。

2 个答案:

答案 0 :(得分:1)

唉,JavaScript中没有floatint这样的东西。您只有Number,其中没有关于1212.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);