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,