大飞_dafei

导航

各种语言中小数计算

各种语言中小数计算

Java 中小数计算

BigDecimal 中 乘法运算multiply

import java.math.BigDecimal;

public class Main {

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("3");
        BigDecimal b = new BigDecimal("3.3");

        BigDecimal c = b.multiply(a);

        System.out.println(c);// 输出 9.9
    }
}

运行结果:  9.9 

PHP中小数计算

echo bcmul("3", "3.3",2); // 输出 9.9

PHP 中 BC 数学 函数

JavaScript中小数计算

没有自己的函数方法,这里推荐一个第三方库 number-precision  再推荐一个第三方库  bignumber.js   bignumber.js 文档    numbers.js  

 JavaScript 浮点数陷阱及解法

 

小数转为百分比demo(对于4位小数),其他位数自己调整

console.log(("0.8791".toString().split('.')[1])/100); // 87.94
console.log(("0.7569".toString().split('.')[1])/100); // 75.69
console.log(("0.6238".toString().split('.')[1])/100); // 62.38
console.log(("0.4000".toString().split('.')[1])/100); // 40
console.log(("0.6500".toString().split('.')[1])/100); // 65

console.log("fei___fei___fei______fei______fei______fei");
console.log(("1.6500".toString().split('.')[1])/100+100); // 165
console.log(("1.0000".toString().split('.')[1])/100+100); // 100    

bignumber.js  四则运算

let a = new BigNumber(3);
let b = new BigNumber(0.3);
// 加减乘除
console.log(a.plus(b).toNumber()); // 3.3
console.log(a.minus(b).toNumber()); // 2.7
console.log(a.multipliedBy(b).toNumber()); // 0.9
console.log(a.div(b).toNumber()); // 10
01) 小于等于  isGreaterThanOrEqualTo
02) 保留4位数,有逗号  BigNumber(10.123).toFormat(4) // 12,310.1230
03) 保留4位数,无逗号  BigNumber(10.123).toFormat(4) // 12310.12
04) 移位获取到前三位数 shiftedBy
    let x = new BigNumber(0.123)
    x.shiftedBy(3).toNumber()

 

### 其他

mathjs 这个库本地开发没有问题,打包后经常报错,或者不兼容ie

 mathjs9.4.1在vue2.5.2中报错(mathjs切换到8.1.0好了  npm install mathjs@8.1.0    )

 Uncaught SyntaxError: In "GeV^-2", "^" must be followed by a floating-point number

posted on 2020-10-29 11:15  大飞_dafei  阅读(768)  评论(0编辑  收藏  举报