前言

有时候我们需要对各种数值进行保留位数,以便于更好的展示。

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

vue 保留两位小数的更多相关文章

  1. vue 保留两位小数 不能直接用toFixed(2) ?

    用vue做项目的时候多多少少都会遇到这个问题 刚开始我是用toFixed()这个方法来写的  效果是有的 但是控制台一直是红红的围绕着我 突然想到 vue和jquery混搭 的 问题 于是乎 看了一下 ...

  2. 公共的强制保留两位小数的js方法

    强制保留两位小数的js方法 //写一个公共的强制保留两位小数的js方法 function toDecimal2 (x) { var f = parseFloat(x) if (isNaN(f)) { ...

  3. java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 复制代码 代码如下: mport java.text.DecimalFormat; DecimalFormat    d ...

  4. js保留两位小数

    js保留两位小数四舍五入: (Math.floor(until_price*100)/100).toFixed(2);//会四舍五入   保留两位小数 且不四舍五入(三种方式,请用最后一种): var ...

  5. JS限制input输入的为数字并且有小数的时候最多保留两位小数

    JS限制input用户输入的为数字并且有小数的时候最多保留两位小数,代码如下: html部分: <input type="number" onkeypress="r ...

  6. 字符串怎么换行 || 字符串中使用单引号时应该怎么写 || 保留两位小数 || 数字0在if中的意思是false || 什么情况下会会报undefined || null和undefined的区别 ||

    换行的字符串 "This string\nhas two lines" 字符串中使用单引号时应该怎么写 'You\'re right, it can\'t be a quote' ...

  7. Double 数据保留两位小数一:五舍六入

    package com; public class T2 { public static void main(String[] args) { System.out.println(calculate ...

  8. Double 数据保留两位小数二:直接截取小数后面两位,不进行四舍五入

    package com; public class T2 { public static void main(String[] args) { System.out.println(calculate ...

  9. java保留两位小数

    java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  d ...

  10. Java保留两位小数的几种做法

    1.  String类型数字始终保留两位小数 , RoundingMode.HALF_UP); return bd.toString(); } /** * 使用DecimalFormat,保留小数点后 ...

随机推荐

  1. 关于Qt高分屏缩放几个知识点

    在windows上经常遇到高分屏缩放的问题,很头疼,貌似这东西就是windows首发的. 在Qt4时代的程序遇到高分屏缩放,不作任何处理,毕竟Qt4时代(2010年以前)出来的时候几乎还没高分屏缩放这 ...

  2. rysnc使用手册

    rsync 是一个用于在本地和远程计算机之间同步文件和目录的命令行工具.它具有许多强大的功能,包括增量传输.压缩和保留权限等.以下是一些 rsync 的常用选项和用法示例: 基本用法 rsync [O ...

  3. P1437 敲砖块 题解

    题意 在一个凹槽中放置了 \(n\) 层砖块.最上面的一层有 \(n\) 块砖,从上到下每层依次减少一块砖.每块砖都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示: 14 15 4 3 23 3 ...

  4. 记录使用socket.io的使用

    今天记录一下node.js的egg框架搭建的socket.io,前端联合使用 首先得引入socket.io的js,我这边是用的下载到本地的一个js 引入:const io = require('../ ...

  5. Appium_测试步骤读取自外部文件:定制执行引擎

    testcase.yaml: - id: home_search - id: search_input_text input: alibaba - id: name - id: current_pri ...

  6. 「V 曲闲谈」《一半的梦》——“模糊”&「NOIP 2022」未游之记

      好久没写闲谈了欸.现在雨兔正坐在家里的台式机前,开着腾讯会议监控自习,但是她悄悄打开记事本,bilibili 单曲循环<一半的梦>(系统 Vol=2,兔耳朵真好使).   感谢 Rai ...

  7. Solution -「CF 590E」Birthday

    \(\mathscr{Description}\)   Link.   给定 \(n\) 个字符串 \(S_{1..n}\),选出其一个最大子集 \(T\),使得 \(T\) 中的字符串两两不存在包含 ...

  8. 使用iText对PDF文件签章和验章

    PDF是国际板式文件标准,使用的范围很广.OFD为国产板式文件标准,设计起点很高,天然支持国产签名算法(SM2.SM3):具有后发优势,目前市场占有率仍然很低,前途光明而又漫长.PDF标准并不支持国产 ...

  9. 前端实现 HTML 网页转 PDF 并导出🤓

    有个新需求,当点击[下载]按钮时,直接将当前 html页面下载为 PDF.通过 html2canvas + jsPDF 可实现PDF单页下载,甚至是多页下载,记录分享一下~ 最后有源码,可自取 htm ...

  10. c# 多线程 lock

    模拟10个线程,每个线程模拟100次取钱: 其实就是相当于1000个人来同时取钱.当然实际情况是取钱的人分布在不同的地区的取款机取钱.同一个取款机只能一个人操作. 关键是要保证取钱的余额要准确,不能在 ...