@@ -86,14 +86,15 @@ const converters = {
8686 const colSpan = node . colSpan ;
8787 let w ;
8888 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 ) ) ;
9290 extra . currentColumn = 0 ;
9391 } 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+ ) ;
9798 extra . currentColumn =
9899 ( extra . currentColumn + node . colSpan ) % extra . columnWidths . length ;
99100 }
@@ -328,13 +329,14 @@ function fixDimensions(node) {
328329 const colSpan = node . colSpan ;
329330 let width ;
330331 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 ) ) ;
334333 } 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+ ) ;
338340 }
339341 if ( ! isNaN ( width ) ) {
340342 node . w = width ;
@@ -348,7 +350,7 @@ function fixDimensions(node) {
348350
349351 if ( node . layout === "table" ) {
350352 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 ) ;
352354 }
353355 }
354356}
0 commit comments