@@ -86,14 +86,15 @@ const converters = {
86
86
const colSpan = node . colSpan ;
87
87
let w ;
88
88
if ( colSpan === - 1 ) {
89
- w = extra . columnWidths
90
- . slice ( extra . currentColumn )
91
- . reduce ( ( a , x ) => a + x , 0 ) ;
89
+ w = Math . sumPrecise ( extra . columnWidths . slice ( extra . currentColumn ) ) ;
92
90
extra . currentColumn = 0 ;
93
91
} else {
94
- w = extra . columnWidths
95
- . slice ( extra . currentColumn , extra . currentColumn + colSpan )
96
- . reduce ( ( a , x ) => a + x , 0 ) ;
92
+ w = Math . sumPrecise (
93
+ extra . columnWidths . slice (
94
+ extra . currentColumn ,
95
+ extra . currentColumn + colSpan
96
+ )
97
+ ) ;
97
98
extra . currentColumn =
98
99
( extra . currentColumn + node . colSpan ) % extra . columnWidths . length ;
99
100
}
@@ -328,13 +329,14 @@ function fixDimensions(node) {
328
329
const colSpan = node . colSpan ;
329
330
let width ;
330
331
if ( colSpan === - 1 ) {
331
- width = extra . columnWidths
332
- . slice ( extra . currentColumn )
333
- . reduce ( ( a , w ) => a + w , 0 ) ;
332
+ width = Math . sumPrecise ( extra . columnWidths . slice ( extra . currentColumn ) ) ;
334
333
} else {
335
- width = extra . columnWidths
336
- . slice ( extra . currentColumn , extra . currentColumn + colSpan )
337
- . reduce ( ( a , w ) => a + w , 0 ) ;
334
+ width = Math . sumPrecise (
335
+ extra . columnWidths . slice (
336
+ extra . currentColumn ,
337
+ extra . currentColumn + colSpan
338
+ )
339
+ ) ;
338
340
}
339
341
if ( ! isNaN ( width ) ) {
340
342
node . w = width ;
@@ -348,7 +350,7 @@ function fixDimensions(node) {
348
350
349
351
if ( node . layout === "table" ) {
350
352
if ( node . w === "" && Array . isArray ( node . columnWidths ) ) {
351
- node . w = node . columnWidths . reduce ( ( a , x ) => a + x , 0 ) ;
353
+ node . w = Math . sumPrecise ( node . columnWidths ) ;
352
354
}
353
355
}
354
356
}
0 commit comments