数字相加
¥Adding numbers
添加全精度浮点数。
¥Add floating point numbers with full precision.
new Adder()
const adder = new d3.Adder();
¥Examples · Source · Creates a new adder with an initial value of 0.
adder.add(number) {#adder_add}
adder.add(42)
将指定的数字添加到加法器的当前值并返回加法器。
¥Adds the specified number to the adder’s current value and returns the adder.
adder.valueOf() {#adder_valueOf}
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)
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.
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)
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.
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.