使用decimal.js解决浮点数运算丢失精度问题

<!doctype html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>decimal.js</title>
</head>
<body>
<script type="text/javascript" src="./static/js/decimal.min.js"></script>
<script type="text/javascript">
    let num1 = 0.1;
    let num2 = 0.2;

    // 丢失精度
    let plus1 = num1 + num2;
    console.log(plus1); // 0.30000000000000004

    // 使用decimal.js就不会丢失精度了
    let decimalNum1 = new Decimal(num1);
    let decimalNum2 = new Decimal(num2);
    let plus2 = decimalNum1.plus(decimalNum2);
    plus2 = plus2.toNumber();
    console.log(plus2); // 0.3
</script>
</body>
</html>

Copyright © 2025 码农人生. All Rights Reserved