Skip to content

数字相加

¥Adding numbers

添加全精度浮点数。

¥Add floating point numbers with full precision.

new Adder()

js
const adder = new d3.Adder();

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

¥Examples · Source · Creates a new adder with an initial value of 0.

adder.add(number) {#adder_add}

js
adder.add(42)

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

¥Adds the specified number to the adder’s current value and returns the adder.

adder.valueOf() {#adder_valueOf}

js
adder.valueOf() // 42

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

¥Returns the IEEE 754 double-precision representation of the adder’s current value. Most useful as the short-hand notation +adder, or when coercing as 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

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

¥Examples · Source · Returns a full-precision summation of the given values. Although slower, d3.fsum can replace d3.sum wherever greater precision is needed.

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

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

¥If an accessor is specified, invokes the given function for each element in the input values, being passed the element d, the index i, and the array data as three arguments; the returned values will then be added.

fcumsum(values, accessor)

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

示例 · 源代码 · 返回给定值的全精度累加和,以 Float64Array 格式存储。虽然速度较慢,但​​ d3.fcumsum 可以在需要更高精度时替代 d3.cumsum

¥Examples · Source · Returns a full-precision cumulative sum of the given values as a Float64Array. Although slower, d3.fcumsum can replace d3.cumsum when greater precision is needed.

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

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

¥If an accessor is specified, invokes the given function for each element in the input values, being passed the element d, the index i, and the array data as three arguments; the returned values will then be added.