使用JavaScript将数字缩写(5.2k、1.7m等)转换为有效整数

使用JavaScript将数字缩写(5.2k、1.7m等)转换为有效整数,javascript,google-docs,Javascript,Google Docs,我有一个谷歌文档,其中有一列包含各种“速记”数字,例如: 5k for 5,000 86.62k for 86,620 4.1m for 4,100,000 1.2b for 1,200,000,000 我想用JavaScript(Google Docs广泛使用)对这些数字进行一些计算,但我需要将它们转换成有效的整数。我如何使用JavaScript实现这一点 我看到这是在PHP()中完成的,但在JS中找不到任何东西 删除最后一个字符并检查它:如果'k'将字符串的其余部分乘以1000,如果'm'

我有一个谷歌文档,其中有一列包含各种“速记”数字,例如:

5k for 5,000
86.62k for 86,620
4.1m for 4,100,000
1.2b for 1,200,000,000
我想用JavaScript(Google Docs广泛使用)对这些数字进行一些计算,但我需要将它们转换成有效的整数。我如何使用JavaScript实现这一点


我看到这是在PHP()中完成的,但在JS中找不到任何东西

删除最后一个字符并检查它:如果'k'将字符串的其余部分乘以1000,如果'm'乘以一百万。

这几乎是相同的语法。只需删除
$
。谢谢!JS工作得很好,我想我会选择这个选项,因为我创建了一个疯狂的公式,可以将M&B转换为整数:=iferror(如果(find(“B”,C69)>0,替换(C69,“B”),替换(C69,“M”),替换(C69,“M”)*1000000)。谢谢你们两位!注意:由于浮点运算的奇妙之处,
4.1m
案例为您提供了使用此功能的
4099999.99999995
。您可能希望在乘法后使用Math.round()以得到正确的整数结果。见jsFiddle。
function convert( number )
{
  var base = parseFloat( number );
  if ( number.toLowerCase( ).match( /k/ ) )
  {
    return Math.round( base * 1000 );
  }
  else if ( number.toLowerCase( ).match( /m/ ) )
  {
    return Math.round( base * 1000000 );
  }
  else if ( number.toLowerCase( ).match( /b/ ) )
  {
    return Math.round( base * 1000000000 );
  }
}