TypeScript保留两位小数

在开发中,我们经常需要对数字进行精确的计算和展示。JavaScript中的数字类型是浮点数,有时会出现精度丢失的情况。为了解决这个问题,TypeScript提供了一些方法来保留数字的小数位数。

toFixed()方法

在JavaScript中,可以使用toFixed()方法来保留数字的小数位数。该方法将数字四舍五入到指定的小数位数,并返回一个字符串表示。

let num = 10.3456;
let result = num.toFixed(2);
console.log(result); // 10.35

上述代码中,toFixed(2)将数字10.3456保留两位小数,并返回字符串"10.35"

parseFloat()方法

parseFloat()方法将字符串解析为浮点数,并返回浮点数。可以使用toFixed()方法对解析后的浮点数进行保留小数位数的操作。

let numStr = "10.3456";
let num = parseFloat(numStr);
let result = num.toFixed(2);
console.log(result); // 10.35

上述代码中,parseFloat()将字符串"10.3456"解析为浮点数10.3456,然后使用toFixed(2)保留两位小数。

四舍五入函数

除了使用内置的toFixed()方法外,我们还可以使用自定义的四舍五入函数来保留小数位数。

function roundToTwoDecimalPlaces(num: number): number {
  return Math.round(num * 100) / 100;
}

let num = 10.3456;
let result = roundToTwoDecimalPlaces(num);
console.log(result); // 10.35

上述代码中,roundToTwoDecimalPlaces()函数将数字乘以100,然后使用Math.round()四舍五入到整数,再除以100得到保留两位小数的结果。

应用场景

保留小数位数在很多场景中都很常见,比如计算商品价格、计算利息、展示统计数据等。下面是一个应用场景的示例:

function calculateTotalPrice(price: number, quantity: number): number {
  let totalPrice = price * quantity;
  return totalPrice.toFixed(2);
}

let price = 12.99;
let quantity = 3;
let total = calculateTotalPrice(price, quantity);
console.log(`Total price: $${total}`); // Total price: $38.97

上述代码中,calculateTotalPrice()函数计算商品的总价格,并保留两位小数。然后在console.log()中展示了总价格。

总结

在TypeScript中,我们可以使用内置的toFixed()方法、parseFloat()方法,或者自定义的四舍五入函数来保留数字的小数位数。这些方法可以帮助我们在开发中进行精确的计算和展示,避免浮点数精度丢失的问题。

gantt
    title TypeScript保留两位小数

    section 理解需求
    根据需求了解需要保留两位小数的场景 :done, p1, 2022-12-01, 10d
    确定保留小数位数的方法 :done, p2, 2022-12-05, 5d

    section 实施方案
    使用内置的toFixed()方法 :done, p3, 2022-12-06, 3d
    使用parseFloat()方法结合toFixed()方法 :done, p4, 2022-12-07, 3d
    自定义四舍五入函数 :done, p5, 2022-12-08, 3d

    section 测试与优化
    编写测试用例 :done, p6, 2022-12-09, 2d
    优化代码 :done, p7, 2022-12-11, 3d
    执行测试 :done, p8, 2022-12-12, 2d

    section 文档撰写
    撰写科普文章 :done, p9, 2022-12-13, 5d
    完善代码示例 :done, p10, 2022-12-18, 3d
    总结与发布 :done, p11,