跳至内容

添加数字

以全精度添加浮点数。

new Adder()

js
const adder = new d3.Adder();

示例 · 源代码 · 创建一个初始值为 0 的新加法器。

adder.add(number)

js
adder.add(42)

将指定的 number 添加到加法器的当前值,并返回加法器。

adder.valueOf()

js
adder.valueOf() // 42

返回加法器当前值的 IEEE 754 双精度表示形式。最常用作简写符号 +adder,或者在强制转换为 Number(adder) 时。

fsum(values, accessor)

js
d3.fsum([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]) // 1

示例 · 源代码 · 返回给定 values 的全精度求和。虽然速度较慢,但 d3.fsum 可以替换 d3.sum,在需要更高精度的地方。

js
d3.fsum(penguins, (d) => d.body_mass_g) // 1437000

如果指定了 accessor,则为输入 values 中的每个元素调用给定函数,并将元素 d、索引 i 和数组 data 作为三个参数传递;然后将返回的值相加。

fcumsum(values, accessor)

js
d3.fcumsum([1, 1e-14, -1]) // [1, 1.00000000000001, 1e-14]

示例 · 源代码 · 返回给定 values 的全精度累积和,作为 Float64Array。虽然速度较慢,但当需要更高精度时,d3.fcumsum 可以替换 d3.cumsum

js
d3.fcumsum(penguins, (d) => d.body_mass_g) // [3750, 7550, 10800, 10800, 14250, …]

如果指定了 accessor,则为输入 values 中的每个元素调用给定函数,并将元素 d、索引 i 和数组 data 作为三个参数传递;然后将返回的值相加。