添加十进制字符串并舍入到最接近的 .05
Adding decimal string and rounding to the nearest .05
我正在尝试添加一堆字符串,这可能有也可能没有十进制值。将它们相加后,我想将数字四舍五入到接近加拿大货币四舍五入标准,因为便士已被丢弃。
舍入如下所示
向下舍入
1.01 或 1.02 = 1.00
1.06 或 1.07 = 1.05
四舍五入
1.03 或 1.04 = 1.05
1.08 或 1.09 = 1.10
到目前为止,我已经让我的 js 编码看起来像这样。
var total1 = null;
var total2 = null;
var num1 = 144.02;
var num2 = 43.09;
var num3 = 1344.04;
var num4 = 443.07;
total1 = parseFloat(num1) + parseFloat(num2);
console.log(total1);
total1 = parseFloat(num3) + parseFloat(num4);
console.log(total2);
小提琴链接 http://jsfiddle.net/Lg6bj5vp/
有关如何从这里开始的任何帮助将不胜感激。谢谢!
您可以使用
(Math.round(num*20)/20).toFixed(2)
Math.round(num)
返回舍入到最接近的整数num
。
因此,Math.round(num*20)/20
返回num
舍入到最接近的1/20 = 0.05
。
最后,num.toFixed(2)
返回num
转换为具有两个小数的字符串。
function parseNumString(str) {
var significant = parseFloat(str).toFixed(2);
var lastDigit = significant.substr(significant.length -1);
var secondToLast = significant.slice(significant.length -1, significant.length -1);
if (lastDigit = '1' || lastDigit == '2') {
string = significant.slice(0, significant.length - 2) + secondToLast + '0';
} else if (lastDigit == '3' ||
lastDigit == '4' ||
lastDigit == '6' ||
lastDigit == '7' ||) {
string = significant.slice(0, significant.length - 2) + secondToLast + '5';
} else if (lastDigit == '8' || lastDigit == '9') {
string = significant.slice(0, significant.length - 2) +
(+secondToLast + 1).toString() + '0';
} else {
string = significant;
}
return +string;
}
相关文章:
- 获取最接近的数组数
- 从同级字符串中指定最接近的元素类
- 浮点0.2+0.1舍入误差
- 当使用'最接近的':jQuery
- 如何使刻度四舍五入到最接近的 # 的倍数
- 如何根据数值通过数据属性进行搜索并获得最接近的值
- 谷歌材料图表:停止工具提示舍入
- 通过搜索最接近的类来更改类
- 通过JavaScript将数字舍入到0.11的最接近倍数
- 在 javascript 中将 Date() 舍入到最接近的 5 分钟
- 舍入时间间隔最长为 15 分钟步长
- Javascript:向上和向下舍入到最接近的 5,然后找到一个公分母
- 添加十进制字符串并舍入到最接近的 .05
- 将时间戳舍入到最接近的日期
- 停止 jQuery 舍入到 .css() 上最接近的小数
- 舍入到最接近的 n 小时
- Javascript四舍五入到最接近的小数点后2位(但向下五舍五入)
- 向上舍入/向下舍入一个时刻js 时刻到最接近的分钟
- 如何使舍入误差最小的百分比分布
- 向上舍入到最接近的 12 的倍数