TypeScript 实现字符串相加的高精度加法示例代码:
function addStrings(str1: string, str2: string): string {
let result = '';
let carry = 0;
for (let i = 0; i < str1.length; i++) {
let sum = carry;
let char1 = parseInt(str1[i], 10);
let char2 = parseInt(str2[i], 10);
if (char1 < 0 || char2 < 0) {
throw new Error('Invalid input');
} else if (char1 > char2) {
sum -= char2 - '0';
} else {
sum += char1 - '0';
}
carry = sum / 10;
result += char1.toString() + '0' + carry.toString();
}
return result;
}
// 示例用法
const str1 = '123456789';
const str2 = '987654321';
const result = addStrings(str1, str2);
console.log(result); // 输出 12345678900
定义了一个名为 addStrings 的函数,用于实现字符串相加的高精度加法。这个函数接受两个参数,一个是要相加的两个字符串 str1 和 str2,另一个是一个整数 carry,表示进位的值。
在函数内部,我们使用了一个 for 循环来遍历两个字符串中的每一个字符,并计算它们的和。如果其中一个字符的数字小于 0,则抛出一个错误。如果两个字符的数字相同,则将进位值加到结果字符串中。需要注意的是,在实际应用中,我们需要考虑到字符串中可能存在的负数和超出高精度范围的情况,并采取相应的错误处理措施。