解决 js*100 的精度问题

  • Post author:
  • Post category:其他


format.js

export function formatFloat(num, n = 2) {
	let f = parseFloat(num);
	if (isNaN(f)) return false;
	f = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); // floor 舍 round 四舍五入 ceil 入
	let s = f.toString();
	let rs = s.indexOf('.');
	//判定如果是整数,增加小数点再补0
	if (rs < 0) {
		rs = s.length;
		s += '.';
	}
	while (s.length <= rs + n) {
		s += '0';
	}
	return s;
}

使用

import {
		formatFloat
	} from '../utils/format.js'
mounted(){
		let aa = 0.1455
			console.log('aaaaaaaa', this.getRate(aa)) // 14.6
}, 
methods: {
		getRate(num) {
				return parseFloat(formatFloat(num * 100)).toFixed(1)
			}
}



版权声明:本文为sinat_33255495原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。