[英]divide a floating number, rounding it to 2 decimals, and calculate the remainder
說我有以下數字2,74。
如果將該數字除以4,則結果為0.685。
我想將此數字除以4,但結果應四舍五入為2個小數。 所以我的結果應該是:
3倍的0.69,其余的為0.67
有人知道如何在javascript中執行此操作嗎? 我完全不知道我該如何解決。
這是您可以執行此操作的方法:
var n = 2.74
var x = (n / 4).toFixed(2)
// renders string "0.69"
var r = (n - 3 * parseFloat(x, 10)).toFixed(2)
// renders string "0.67"
說明:
方法(n).toFixed(x)
將數字n
的前x
個數字作為數字,並返回一個字符串
方法parseFloat(s, b)
接受字符串s
並在基數b
返回浮點數
由於您要查找2位數的精度,因此需要將數字乘以10^2
(100),然后通過調用Math.round
舍入到最接近的整數。 然后將結果除以您乘以(100)的因子。
如果要獲得更高的精度位數(小數點后),則只需乘以10的大數即可(例如:3位數字為1000,4位數字為10000,依此類推)。
var n = 2.74; var result = Math.round((n / 4) * 100) / 100; document.getElementById('output').innerHTML = (result * 3).toString() + '<br>' + (n - (result*3));
<div id="output"></div>
問題注釋中提到的另一種選擇是使用toFixed
:
var n = 2.74;
var result = (n/4).toFixed(2) * 3;
如有必要,請測試解決方案。
function getParts(num, parts, precision) { var v = +(num / parts).toFixed(precision), r = +(num - v * (parts - 1)).toFixed(precision); return v === r ? { parts: parts, value: v } : { parts: parts - 1, value: v, remainder: r }; } document.write('<pre>' + JSON.stringify(getParts(2.74, 4, 2), 0, 4) + '</pre>'); document.write('<pre>' + JSON.stringify(getParts(3, 4, 2), 0, 4) + '</pre>'); document.write('<pre>' + JSON.stringify(getParts(4, 3, 2), 0, 4) + '</pre>');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.