2016-06-09 43 views
-3

获取号码,我已经试过parseFloat,parseInt函数,但它不工作,以及十进制的JavaScript

举个例子

var a = $ 1,2000 
var b = a.replace(/[^0-9\.]+/g,""); //I use this to strip the currency off 

所以我怎么能得到1,20? 另一个例子如果

var a = $ 7,0000 

我该如何返回一个7?

我使用parseFloat(),但它返回不需要的数据。

例如

if var a = $ 2,500 

它返回我

var a = 2500 

这不是我想要的。有谁能够帮助我?

+5

我认为你的意思'VAR一个=“$ 1,2000”;'或类似?你的问题没有任何意义,没有你的变量字符串 – devnull69

+1

逗号用于每次分割3位数字(数千,数百万),而点用于获得小数。一旦你解决这个问题,使用['toFixed'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)来限制点之后的数字。 – MarcoL

+2

'$ 1,2000'和'if var'都是SyntaxError。 – Oriol

回答

2

当你的字符串使用逗号而不是默认的小数点分隔符.你必须也更换逗号

var a = "$ 1,2000"; 
var b = a.replace(/[^0-9,]/g, "").replace(",", "."); 
var bf = parseFloat(b); // will give you 1.2 
+1

[所有国家中至少有一半使用小数点逗号代替小数点](https://en.wikipedia.org/wiki/Decimal_mark#Hindu.E2.80.93Arabic_numeral_system)。 – evolutionxbox

+0

我也这么做。但我的Javascript解释器只是不:-) – devnull69

+0

确实,JS绝对不会使用小数逗号。事实证明,JS是在一个不使用小数点逗号的国家创建的。 – evolutionxbox

0

如果您的变量包含$符号,然后typeof你的变量是,而不是。记得把它放在的引号里面,换个方法,你会得到一个错误。

var a = $ 1,200  //Incorrect syntax 
var b = "$ 1,200"  //Correct syntax