【问题标题】:float value extraction in javascriptjavascript中的浮点值提取
【发布时间】:2017-03-27 03:08:42
【问题描述】:

如何在 JavaScript 中将 (0.9) 之类的浮点值提取为整数 (9)?

例子

var total = 67.9; 
something to process  var whole var DEC to be like 
var whole = 67;
var DEC = 9;

【问题讨论】:

  • 为什么是 9 而不是 0.9?数字应该怎么办,比如 42.321?它应该返回dec = 321吗?
  • 像 42.321 这样的数字应该返回 42 和 321 而不是 0.321
  • 在一般情况下这是不可能的(由于有限的精度)。您有可能以错误的方式做某事,您最好解释一下您要解决的原始问题。
  • @zerkms 如果您只使用数字,这是不可能的(是的,我出于好奇而尝试过 - 它几乎从不给出正确答案),但是因为这是一个表示问题,我们不妨使用字符串。
  • @MaxArt var total = 67.9; ---好吧,在他们处理数字而不是字符串的问题中。由于并非每个数字都可以正确表示 - 您无法(在运行时)判断数字文字及其字符串表示是否相同。

标签: javascript math integer


【解决方案1】:

我能想到的最简单的方法是这样的:

var string = total.toString();
var dotidx = string.indexOf(".");
var dec = dotidx >= 0 ? +string.slice(dotidx + 1) : 0;

请注意,它不适用于指数形式的数字。

【讨论】:

    【解决方案2】:

    有很多方法可以找到结果。我给你一个简单的解决方案。

    var total = 67.9
    var splitVal = total.toString().split(".")
    var whole = splitVal[0], var desc = splitVal[1] || 0 
    

    如果你想将整数和 desc 转换为数字,则乘以 1。

    var whole = splitVal[0] * 1
    

    【讨论】:

    • 如果total 实际上是一个整数,这将返回undefined/NaN
    • 我们可以设置var desc = splitVal[1] || 0。谢谢 MaxArt
    猜你喜欢
    • 2010-09-27
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多