126. BigDecimal 加法

JavaScriptAlgorithm
觉得这个题有帮助吗?

没多少人挑战  -通过 / -执行

JavaScript并不能精确表示所有十进制的浮点数,因为采用的二进制。

在基础的运算中,可以用Number.prototype.toFixed()来搞定,但是更复杂的情况下需要使用其他办法来保证精度。

JavaScript的Proposal of BigDecimal 还在尚早的阶段,在那之前我们可以使用一些库来解决精度问题,比如Big.js

在该问题中,请实现任意位数的10进制浮点数的加法运算


add('-999999999999999999', '-1')
// '-1000000000000000000'

add(
  '-999999999999999999.999999999999999999999999999999', 
  '1.0000000000000000000000000001')
// '-999999999999999998.999999999999999999999999999899'

add(
  '999999999999999999.9999999999999999999999999999', 
  '1.0000000000000000000000000001')
// '1000000000000000001'
  1. 该问题同时cover了76. 实现BigInt的加法(含符号)
  2. 最终结果的结尾的0需要去掉。

争取20分钟以内搞定这个问题

讨论