在Javascript中汇款到最近的10美元

时间:2010-08-12 00:43:12

标签: javascript decimal rounding currency

如何将Javascript中的十进制数舍入到最接近的10?我今天的数学很垃圾,可能是2小时的睡眠:/

一些示例案例

$2823.66  = $2820
$142.11 = $140
$9.49 = $10

我知道我可能需要Math.round / floor的组合,但我似乎无法获得预期的结果。

赞赏任何帮助/指示!

中号

5 个答案:

答案 0 :(得分:70)

尝试

Math.round(val / 10) * 10;

答案 1 :(得分:12)

使用此功能:

function roundTen(number)
{
  return Math.round(number/10)*10;
}



alert(roundTen(2823.66));

答案 2 :(得分:9)

要将数字舍入到最接近的10,首先将其除以10,然后将其四舍五入到最接近的1,然后再将其乘以10:

val = Math.round(val/10)*10;

This page有一些细节。它们走另一条路(例如,舍入到最接近的0.01),但理论和实践是相同的 - 乘法(或除法),舍入,然后除(或乘)。

答案 3 :(得分:4)

10 * Math.round(val / 10)

答案 4 :(得分:2)

function round(number, multiplier) {
  multiplier = multiplier || 1;
  return Math.round(number / multiplier) * multiplier;
}

var num1 = 2823.66;
var num2 = 142.11;
var num3 = 9.49;

console.log(
  "%s\n%s\n%s", // just a formating thing
  round(num1, 10), // 2820
  round(num2, 10), // 140
  round(num3, 10)  // 10
);