如何用5509.09製作5509.099999999999使用javascript。如何用5509.09製作5509.099999999999使用javascript
回答
很多是結束了.1所以如何mathy選項關於;
var f = 5509.099999999999
if ((f = f.toString()).indexOf(".") >= 0)
f = f.substr(0, 3 + f.indexOf("."))
print(parseFloat(f))
>>5509.09
您可以截斷數達到一定數量使用這個函數的小數位:
function truncateNumber(number, digits){
var divisor = Math.pow(10,digits);
return Math.floor(number*divisor)/divisor;
}
如果你想圓的數量,而不是,您可以使用JavaScript的內置Number.toFixed
功能。如果您始終希望號碼的位數長一些,則可以使用Number.toPrecision
函數。
不是我的downvote,但是當指定2位小數時,你的解決方案仍然給出'5509.1'。你也有一個錯字(「nuber」) – 2011-05-10 13:35:00
您可以使用.toFixed(2)
但這會繞過值,因此在您的示例中,您將以5509.10
而不是5509.09
結束。
下一個最佳選擇是使用Math.floor()
,它截斷而非舍入。不幸的是,這隻給出了整數結果,所以爲了得到2位小數的結果,你需要乘以100,然後使用Math.floor()
,然後再除以100。
var value = 5509.099999999999;
var result = Math.floor(value*100)/100;
[編輯] 嗯,不幸的是,上述不由於問題浮點精度工作 - 即使只是乘以100它的第一步驟給出550910
。
這意味着最好的答案很可能是將其轉換爲字符串並將字符串切分爲位。
var value = 5509.099999999999;
var str_value = value.toString();
var bits = str_value.split('.');
var result = bits[0]+"."+bits[1].substr(0,2);
通常我不會建議做字符串操作對於這樣的事情,因爲這顯然是一個數學題,但考慮到問題的具體要求,它似乎這是唯一可行的解決方案這個案例。
*仍然*給出'5509.1'。 – 2011-05-10 13:30:52
啊,它*應該*。09,但你遇到了浮點數學精度的問題。 :-(簡單地做'value * 100'給出'550110'。你可能會發現唯一的答案是'toString()'和切斷字符串,我會編輯答案.... – Spudley 2011-05-10 13:35:09
我懷疑這是最好的在這種情況下 – 2011-05-10 13:35:50
如果您想取小數點後兩位,您可以使用.toPrecision(n)
javascript函數,其中n是總數期望的位數。
因此,對於你的榜樣,你所要做的
var x = 5509.099999999999;
x = x.toPrecision(6);
這一點,但是,兩輪成績在5509.10
不正確,'toPrecision()'適用於四捨五入。 – 2011-05-10 13:31:37
實際上,這也輪到它,至少在IE8 :( – Tsar 2011-05-10 13:31:42
var result = (Math.round((5509.09999 * 100) - 1))/100;
你試過嗎?
var value = 5509.099999999999;
var str = value.toString();
var result = str.substr(0,7);
然後,如果你需要它是一個浮動再次,你可以這樣做:
var FinalAnswer = parseFloat(result);
你並不需要所有這些變量,但畢竟是一步一步來。
(5509.099999999999).toString()。substr(0,7)魅力,做得好! – Tsar 2011-05-10 13:41:46
- 1. 如何使用JavaScript製作2D引力?
- 2. 如何使用Worklight使用serverside javascript製作HTTPS請求?
- 3. 使用javascript製作圖片
- 4. 使用JavaScript製作故事
- 5. 如何使用HTML 5,JavaScript和CSS製作epub控制器?
- 6. 如何用javascript製作狗皮
- 7. 如何使用nusoap lib製作nusoap服務器,並使用Javascript調用
- 8. 如何使用javascript/jquery/css3製作響應式flex?
- 9. 如何製作幻燈片重複使用JavaScript
- 10. 如何使用純JavaScript和CSS製作輪播?
- 11. 如何使用HTML,Javascript製作可摺疊邊欄?
- 12. 如何在html中使用css或javascript製作螺旋文本
- 13. 如何使用JavaScript中的功能爲圖像製作邊框
- 14. 我如何使用JavaScript來製作圖像「晃動」或「顫抖」?
- 15. 如何使用Jquery和JavaScript製作主題切換器?
- 16. 如何使用html,css,javascript製作時間線?
- 17. 如何使用Javascript和HTML製作不同的頁面?
- 18. 如何使用YUI javascript庫製作非ajax POST請求?
- 19. 如何使用Javascript製作自定義範圍輸入滑塊
- 20. 如何製作一種使用html和javascript的計算器?
- 21. 如何使用javascript和css製作開關和滾動效果?
- 22. 如何使用CSS或JavaScript製作金字塔連接圈?
- 23. 如何使用此Javascript對象製作精美模板?
- 24. 如何創建使用CSS或javascript製作的Pert圖表
- 25. 如何使用javascript在asp.net中製作計算器?
- 26. 如何使用javascript製作多個計數器?
- 27. 如何在使用javascript製作的遊戲中提升速度?
- 28. 如何使用JavaScript和json數據製作網格類型
- 29. 如何使用javascript製作可點擊的圈子?
- 30. 如何使用CSS和JavaScript製作滾動的Div行?
難道你不想四捨五入嗎? – SLaks 2011-05-10 13:19:14
還是要截斷? – soandos 2011-05-10 13:19:57
不,我不想整理 – 2011-05-12 10:11:38