欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js金额转换、校验、元转分、分转元记录

程序员文章站 2022-07-14 22:54:07
...

之前做项目的的时候,在项目中频繁的接触到金额之间单位转换的问题,主要是用户输入的是元,请求服务器的时候需要的是元,有时候后台返回的是分,给用户展示需要转换成元,因为js的精度问题,也吃了很大的亏,所以以这篇文章来记录总结一下,希望能够帮到你!

一.金额校验

export const regAmount = (amount:string):boolean => {
  return /^[0-9]+(.[0-9]{1,2})?$/.test(amount)
}

测试:

regAmount('1')		// true
regAmount('1.0')	// true
regAmount('1.0')	// true
regAmount('1.01')	// true
regAmount('0.1')	// true
regAmount('1.')	    // false
regAmount('.1')	    // false
regAmount('1.000')	// false

二、金额转换

1.分转元

export const fenToYuan = (amount:string | number):string => {
  return (Number(amount) / 100).toFixed(2)
}

测试:

fenToYuan('20')		// 0.20
fenToYuan('9')		// 0.09
fenToYuan('123')	// 1.23
fenToYuan('0')		// 0.00

2.元转分

export const yuanToFen = (amount:string | number):string => {
  return Math.round(Number(amount) * 100).toString()
}

测试:

yuanToFen('0.02')	// 2
yuanToFen('1.99')	// 199
yuanToFen('2.3')	// 230
yuanToFen('34')		// 3400

暂时场景只有这些,后期如果遇到其他场景再进行补充