出现问题的效果图(我是小程序项目)
原代码就一行
this.currentVideoPercentage = (res.detail.currentTime / res.detail.duration).toFixed(2) * 100
在下面再加一行
this.currentVideoPercentage = Number(this.currentVideoPercentage.toString().match(/^\d+(?:\.\d{0,2})?/))
解决
2021.09.10更新================================================================
以上代码都有问题
// 参数说明:
// number:要格式化的数字
// decimals:保留几位小数
// dec_point:小数点符号
// thousands_sep:千分位符号
// 最多保留两位不足两位进行补位,输入小数位大于两位截取两位并进位
export function number_format(number, decimals, dec_point, thousands_sep) {
number = (number + '').replace(/[^0-9+-Ee.]/g, '')
var n = !isFinite(+number) ? 0 : +number
var prec = !isFinite(+decimals) ? 2 : Math.abs(decimals)
var sep = (typeof thousands_sep === 'undefined') ? '' : thousands_sep
var dec = (typeof dec_point === 'undefined') ? '.' : dec_point
var s = ''
var toFixedFix = function(n, prec) {
var k = Math.pow(10, prec)
return '' + Math.ceil(n * k) / k
}
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')
var re = /(-?\d+)(\d{3})/
if ((s[1] || '').length < prec) {
s[1] = s[1] || ''
s[1] += new Array(prec - s[1].length + 1).join('0')
}
return s.join(dec)
}
这是vue里拉的number format工具
尽量还是用此format下
另外js的加减乘除带小数点的移步用这个插件
JavaScript | 大数计算、浮点运算(decimal.js、bignumber.js、big-number)简易的使用文档 - 前端 - 问几许
金融项目用的这俩工具基本上保证input上暴力填写小数点并计算加减乘除没有任何问题,还是最好不要自己在其他地方弄正则了