跳至內容

加總數字

以完全精度加總浮點數。

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]

範例 · 來源 · 以 Float64Array 傳回給定values 的全精度累計總和。儘管較慢,但當需要更高的精度時,d3.fcumsum 可以取代 d3.cumsum

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

如果指定了accessor,則會對輸入values 中的每個元素呼叫給定的函數,並將元素 d、索引 i 和陣列 data 作為三個引數傳遞;然後會新增傳回的值。