2012-12-25 20 views
1

我的意思是,我應該使用`.toPrecision()`而不是舍入和指數?

我應該用這個乾淨的代碼...而不是這個醜陋的代碼

var rounded=num.toFixed(n); 

......

var pow10=Math.pow(10,n), 
    rounded=''+Math.round(num*pow10)/pow10; 

即使第二個是多更快? (http://jsperf.com/round-numbers-number-decimals/2

爲什麼第一個這麼慢?瀏覽器無法實現第一個代碼?

+2

那麼事情是他們不完全相同,甚至沒有可比性; 'toFixed()'返回一個**字符串**。 – Pointy

+0

@Pointy你說得對。我已經修復了jsperf和帖子 – Oriol

回答

1

除非您有一個特定的使用案例,其中需要大量迭代的速度,否則我會堅持使用.toFixed(),因爲它很簡單,易於閱讀和理解您在做什麼。如果你必須優化速度,但至少你知道你可以從哪裏開始!

+0

+1,我不認爲可以比較兩個示例中的差異,所以我將使用第一個。 –

相關問題