2012-07-09 95 views
-1

可能重复:
Elegant workaround for JavaScript floating point number problem如何将字符串值(例如:double值)转换为javascript中的百分比?

我想知道如何才能将下面的值转换为JavaScript中的百分比?

第一预期输出

Input Value : 0.03222772304422584 
Expected Value: 0.03 

第二预期输出

Input Value : 0.03222772304422584 
Expected Value: .03 

由于提前,

卡锡尔

+1

参见[这个问题](http://stackoverflow.com/questions/1458633/elegant-workaround-for-javascript-floating-point-number-问题),或搜索堆栈溢出“浮点”“舍入”“javascript”(http://www.google.com/?q=site:stackoverflow.com%20floating%20point%20javascript%20rounding)。这是一个非常普遍的问题。 – Matt 2012-07-09 09:52:27

+0

这一个可能工作 - Math.round(0.322277230442254 * 100)/ 100 – Tom 2012-07-09 09:53:09

+2

*“第一...预期值:0.03 /秒......预期值:.03”*好的,什么决定是否应该有一个领先的0 ? – 2012-07-09 09:54:12

回答

5

您可以使用toFixed()slice()像:

var n = +"0.0322277230442258"; //converts String to Number 
var r = n.toFixed(2); // returns 0.03 

var r2 = r.slice(1): // returns .03 by removing the first character 
+0

OP对字符串值进行操作,您忘记了类型转换。 – jAndy 2012-07-09 10:02:14

+0

@jAndy我很擅长看不到的东西,但它在哪里表明它是一个字符串值? – m90 2012-07-09 10:51:13

+0

问题标题本身......那些,特大字母:-) – jAndy 2012-07-09 10:52:45

4
var val = "0.03222772304422584"; 

(+val).toPrecision(1); // 0.03 
(+val).toPrecision(1).slice(1); // .03 

编号:MDN .toPrecision()