出现问题的效果图(我是小程序项目)

原代码就一行

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上暴力填写小数点并计算加减乘除没有任何问题,还是最好不要自己在其他地方弄正则了

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐