之前遇到小数相加时,小数位数变多了,在网上找了一些方法感觉可以,今天突然发现有些情况还不行了,例如:
1.1+9.04=10.139999999999999 6 1.1+18.08=19.179999999999996 6 1.1+32.77=33.870000000000005 6 1.1+65.54=66.64000000000001 6 1.1+68.93=70.03000000000002 6 1.1+72.32=73.41999999999999
大家也可以试试自己的方法,能不能正常运算出结果。最终解决方案如下:
1、安装
https://www.npmjs.com/package/great-jsutils
npm i great-jsutils --save
2、导入
import { NumberUtils } from "great-jsutils";
3、示例
3.1、随机生成一组整数
默认返回一个小于10的整数,可以指定返回的最大值、最小值,以及返回的个数
import { NumberUtils } from "great-jsutils";
示例1:随机生成一个小于10的整数
NumberUtils.randomInt();
示例2:随机生成一个小于100的整数
NumberUtils.randomInt({max:100});
示例3:随机生成四个大于等于10,小于100的整数
NumberUtils.randomInt({max:100,min:10,number:4})
3.2、随机生成一组浮点数
默认返回一个小于10的浮点数,可以指定返回的最大值、最小值、小数位数,以及返回的个数
示例1:随机生成一个小于10的两位小数的浮点数
NumberUtils.randomInt();
示例2:随机生成一个小于100的两位小数的浮点数
NumberUtils.randomInt({max:100});
示例3:随机生成四个大于等于10,小于100的两位小数的浮点数
NumberUtils.randomInt({max:100,min:10,number:4})
示例4:随机生成四个大于等于10,小于100的三位小数的浮点数
NumberUtils.randomInt({max:100,min:10,number:4,scale3})
3.3、 将数字转人民币大写
console.log(NumberUtils.changeToChinese(1200));// 壹仟贰佰元整
3.4、 将阿拉伯数字转中文表示方式
console.log(NumberUtils.numberToChinese(12)); // 十二
3.5 数字相加
console.log(NumberUtils.sum(1.1,1.3));// 2.4
console.log(1.1+1.3);//2.4000000000000004
- 一组数字相加
console.log(NumberUtils.adds(1.001,1.3,1.4,2.33,12.3103));//18.3413
3.6 数字相减
console.log(NumberUtils.sub(1.1,1.2));
3.7 数字相乘
console.log(NumberUtils.mul(1.1,1.2));
3.8 数字相除
console.log(NumberUtils.div(1.1,1.2));