vue 保留两位小数
前言
有时候我们需要对各种数值进行保留位数,以便于更好的展示。
Html部分
template中这样使用,需要处理的字段名,再加上过滤器方法
<div class="text primary-text">
<span>合计:</span>
<span class="money">¥{{totalMoney | numFilter}}</span>
</div>
情况一:保留小数点后两位的过滤器,尾数四舍五入
filters: {
numFilter (value) {
// 截取当前数据到小数点后两位
let realVal = parseFloat(value).toFixed(2)
return realVal
}
}
情况二:保留小数点后两位的过滤器,尾数不四舍五入
当截取当前数据到小数点后四位,小数点第三位为数字9时,第四位会导致第三位进位的情况下,最终得到的数据不是截取
eg: 3.1798
而是会截取两位变成3.18
,代码已做优化处理。
首先在src目录下建立js文件,如:decimals.js,加入如下代码
/**
* 对源数据截取decimals位小数,不进行四舍五入
* @param {*} num 源数据
* @param {*} decimals 保留的小数位数
*/
export const cutOutNum = (num, decimals) => {
if (isNaN(num) || (!num && num !== 0)) {
return '--'
}
// 默认为保留的小数点后两位
let dec = decimals ? decimals : 2
let tempNum = Number(num)
let pointIndex = String(tempNum).indexOf('.') + 1 // 获取小数点的位置 + 1
let pointCount = pointIndex ? String(tempNum).length - pointIndex : 0 // 获取小数点后的个数(需要保证有小数位)
// 源数据为整数或者小数点后面小于decimals位的作补零处理
if (pointIndex === 0 || pointCount <= dec) {
let tempNumA = tempNum
if (pointIndex === 0) {
tempNumA = `${tempNumA}.`
for (let index = 0; index < dec - pointCount; index++) {
tempNumA = `${tempNumA}0`
}
} else {
for (let index = 0; index < dec - pointCount; index++) {
tempNumA = `${tempNumA}0`
}
}
return tempNumA
}
let realVal = ''
// 截取当前数据到小数点后decimals位
realVal = `${String(tempNum).split('.')[0]}.${String(tempNum)
.split('.')[1]
.substring(0, dec)}`
// 判断截取之后数据的数值是否为0
if (realVal == 0) {
realVal = 0
}
return realVal
}
在你需要使用的vue文件中,引入
import { cutOutNum } from '@/utils/decimals'
在过滤器中使用
filters: {
cutOutNums(num) {
return cutOutNum(num, 5)
},
},
原文链接:https://blog.csdn.net/qq_42127308/article/details/80388398
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-04-27 laravel 【error】MethodNotAllowedHttpException No message