MST
星途 面试题库

面试题:TypeScript中bigint类型在处理金融计算场景的应用

假设你正在开发一个金融相关的应用,需要处理大金额(超过JavaScript常规Number类型精度)的加减乘除运算。请使用TypeScript的bigint类型实现一个简单的金融计算函数,该函数接收两个bigint类型的金额以及一个操作符('+'、'-'、'*'、'/'),返回运算结果。并解释为什么这里使用bigint类型比使用普通Number类型更合适。
41.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function financialCalculation(amount1: bigint, amount2: bigint, operator: '+' | '-' | '*' | '/'): bigint {
    switch (operator) {
        case '+':
            return amount1 + amount2;
        case '-':
            return amount1 - amount2;
        case '*':
            return amount1 * amount2;
        case '/':
            return amount1 / amount2;
        default:
            throw new Error('Unsupported operator');
    }
}

使用bigint类型比使用普通Number类型更合适的原因:

  • 精度问题Number类型在JavaScript中是双精度浮点数,能够精确表示的整数范围有限(-2^53 + 1 到 2^53 - 1)。对于金融应用中的大金额,很容易超出这个范围导致精度丢失。而bigint类型可以表示任意精度的整数,确保金额计算的准确性。
  • 金融场景需求:在金融领域,金额的准确性至关重要,哪怕是微小的精度误差都可能导致严重的财务问题。bigint提供的精确计算特性正好满足这一需求。