vue 保留两位小数_牛奔的博客-程序员秘密

技术标签: python  java  oracle  vue  js  

前言

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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Guzarish/article/details/118626342

智能推荐

金融工程与并行计算:第二章 仿真法在财务工程的使用 Part 2_quasi random search_AndyDong1209的博客-程序员秘密

第三节 随机数生成物件在程序的设计中,当我们需要随机数时,通常我们可以由链接库中取得内建随机数。这类随机数可称之为假随机数(PseudorandomNumber)。这是因为我们是采用确定的方法(Deterministic Method)去模仿产生随机数,本质上他们并不是真正的随机数,只是刻意地使其看起来像是随机数而已。当然,他们具备了一些随机数该有的性质。另外一类在程序设计中可充当随机数来源的是所...

考研复试实用指南_zrh_023的博客-程序员秘密

考研初试已经结束,但是考研这场仗还没打完,接下来,我们将走入复试的战场。考研复试并不是走过场,是有严格的淘汰比例的;考研复试并不是关系网,是有公开而透明的准则和条例的;考研复试并不是高分必过,低分必刷,而是一个奇迹和机会的创造者。如果你放弃了复试,就等于放弃了你自己。本篇文章详细的介绍了复试的准备及学习过程,希望可以助你一臂之力,相信你终将成硕。

for...in遍历数组_for in 遍历数组_卡布奇诺Princes的博客-程序员秘密

//for...in用来遍历数组的元素或者是对象的属性 var x; var cars = new Array(); cars[0] = '夏利'; cars[1] = '奥拓'; cars[2] = '时风'; //如果是数组的话,x变量就是数组的下标,2,数组有几个元素,就循环几次,3,每循环一次就会对数组的元素进行操作 for(x in cars ){  do

重新设置laydate中最大值max_laydate控件怎么重新渲染最大值_Java-xy²的博客-程序员秘密

//监听订单下拉框 form.on('select(orderId)', function (data) { var orderId = data.value; $("#equipId").html(""); if(!isNull(orderId)){ Comm.ajaxPost('${ctx}/***/*****/...

LESS-3和LESS-4(sql注入)_less4_林夕林@的博客-程序员秘密

LESS-3源码:1、输入?Id=1’后出现错误错误提示为”2”)LIMIT 0,1’.去掉前后两个单引号,和自己输入的一个单引号后还有两个单引号和一个括号,可推出sql注入中的由单引号和括号和起来的闭合模式。2、输入:http://127.0.0.1/sqlilabs/Less-3/?id=2’)–+url编码后:http://127.0.0.1/sqlilabs/Less-3/?...

随便推点

Wireshark lua 插件提取PCAP报文中文件,图片,视频_提取pacp中的jpg文件_村中少年的博客-程序员秘密

Wireshark提取离线包数据中的文件图片、视频等信息,通过wireshark lua插件来实现

phpcms v9不用下插件自己做留言板_angqiqin7880的博客-程序员秘密

相信很多用phpcms v9的站长都不是程序员,而我也是一个网页设计师,所以对制作模板还是可以对付的。但是一设计到自己写程序,就一个头两个大啦。之前公司的网站是用找别人 用dede cms做的,后来我接手的时候发现里面的模板乱七八糟的,所以决定来一次改版。在网上搜了搜cms程序,普遍都说phpcms比dedecms要高级多 了,于是毅然选择了phpcms的新版V9。安装还是蛮好装的,一切...

【数位DP】恨7不成妻_weixin_30679823的博客-程序员秘密

【数位DP】恨7不成妻时间限制: 1 Sec内存限制: 128 MB提交: 8解决: 4[提交] [状态] [命题人:admin]题目描述单身!依然单身! 吉哥依然单身!DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现:2+1+4=7 7+7=7*2 77=7*11最终,他发现原来这一切归根到底都是...

使用pyav访问网络视频流_yuanlulu的博客-程序员秘密

背景深度学习项目中使用python-opencv获取视网络频流出错,找替代方案.要求能得到numpy格式的图片,供opencv和深度模型使用。方案选型据我所知道的方法,在python中访问网络视频流(rtsp 或者http视频流)有以下工具:opencv、pyav、imageio和python-vlc.imageio和python-vlc的资料少,没找到完美的例子,放弃。 o...

python变量的作用域有局部 全局 内建_从局部变量和全局变量开始全面解析Python中变量的作用域..._weixin_39953244的博客-程序员秘密

理解全局变量和局部变量1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如:输出结果是123。说明函数中定义的变量名num是一个局部变量,覆盖全局变量。再例如:输出结果是:UnboundLocalError: local variable 'num' referenced befo...

从程序员到项目经理(8):程序员加油站 -- 不要死于直率_iteye_17015的博客-程序员秘密

直率听上去是一种美好的品德,然而如果不注意区分实际情况,直率可能会成为一把伤人害己的“双刃剑”!1.直率是关于说话的问题  公司曾有一位人力资源经理是从传统行业转过来的,有一次她跟我说:“程序员真有意思,他们全都是一根肠子通到底,大脑不会转弯!”还真是这样的,估计没有哪个行业的人员像程序员这样,具有同样的鲜明的性格特征:直率。直率很容易理解,其实就是一个关于说话的问题,准确的说这是...

推荐文章

热门文章

相关标签