[{"data":1,"prerenderedAt":3091},["ShallowReactive",2],{"navigation-en":3,"page-\u002Fexamples\u002Fcurrency":78,"surround-\u002Fexamples\u002Fcurrency":3087},[4,26,56],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fguide","1.guide\u002F1.index",[9,10,14,18,22],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Getting Started","\u002Fguide\u002Fgetting-started","1.guide\u002F2.getting-started",{"title":15,"path":16,"stem":17},"Number Formatting","\u002Fguide\u002Fformat-tokens","1.guide\u002F3.format-tokens",{"title":19,"path":20,"stem":21},"Performance","\u002Fguide\u002Fperformance","1.guide\u002F4.performance",{"title":23,"path":24,"stem":25},"Caveats","\u002Fguide\u002Fcaveats","1.guide\u002F5.caveats",{"title":27,"path":28,"stem":29,"children":30},"API Overview","\u002Fapi","2.api\u002F0.index",[31,32,36,40,44,48,52],{"title":27,"path":28,"stem":29},{"title":33,"path":34,"stem":35},"calc()","\u002Fapi\u002Fcalc","2.api\u002F1.calc",{"title":37,"path":38,"stem":39},"fmt()","\u002Fapi\u002Ffmt","2.api\u002F2.fmt",{"title":41,"path":42,"stem":43},"Chain API","\u002Fapi\u002Fchain","2.api\u002F3.chain",{"title":45,"path":46,"stem":47},"Standalone Functions","\u002Fapi\u002Fstandalone","2.api\u002F4.standalone",{"title":49,"path":50,"stem":51},"Aggregation","\u002Fapi\u002Faggregate","2.api\u002F5.aggregate",{"title":53,"path":54,"stem":55},"Global Config","\u002Fapi\u002Fconfig","2.api\u002F6.config",{"title":57,"path":58,"stem":59,"children":60},"Examples Overview","\u002Fexamples","3.examples\u002F0.index",[61,62,66,70,74],{"title":57,"path":58,"stem":59},{"title":63,"path":64,"stem":65},"Precision Loss","\u002Fexamples\u002Fprecision-loss","3.examples\u002F1.precision-loss",{"title":67,"path":68,"stem":69},"E-commerce","\u002Fexamples\u002Fecommerce","3.examples\u002F2.ecommerce",{"title":71,"path":72,"stem":73},"Complex Expressions","\u002Fexamples\u002Fcomplex","3.examples\u002F3.complex",{"title":75,"path":76,"stem":77},"Currency Conversion","\u002Fexamples\u002Fcurrency","3.examples\u002F4.currency",{"id":79,"title":75,"body":80,"description":3081,"extension":3082,"meta":3083,"navigation":1572,"path":76,"seo":3085,"stem":77,"__hash__":3086},"content_en\u002F3.examples\u002F4.currency.md",{"type":81,"value":82,"toc":3074},"minimark",[83,87,101,106,726,730,733,927,931,934,1222,1226,1233,2886,2890,2893,3049,3070],[84,85,75],"h1",{"id":86},"currency-conversion",[88,89,90,91,95,96,100],"p",{},"Exchange rates are decimals, and money is precision-sensitive — exactly where native floating-point bites. Pass amounts and rates as ",[92,93,94],"strong",{},"strings"," and let ",[97,98,99],"code",{},"@wzo\u002Fcalc"," keep every cent exact.",[102,103,105],"h2",{"id":104},"basic-conversion","Basic Conversion",[107,108,114],"pre",{"className":109,"code":110,"language":111,"meta":112,"style":113},"language-ts shiki shiki-themes github-light github-light github-dark twoslash lsp","import { calc } from '@wzo\u002Fcalc'\n\u002F\u002F ---cut---\n\u002F\u002F USD → CNY at 7.2345\nconst usd = 250.75\nconst rate = 7.2345\ncalc(`${usd} * ${rate}`, { _fmt: { decimals: 2, thousands: true, rounding: 'round' } })\n\u002F\u002F 250.75 * 7.2345 = 1814.050875 → \"1,814.05\"\n","ts","twoslash","",[97,115,116,125,175,210,720],{"__ignoreMap":113},[117,118,121],"span",{"class":119,"line":120},"line",1,[117,122,124],{"class":123},"sCsY4","\u002F\u002F USD → CNY at 7.2345\n",[117,126,128,132,136,169,172],{"class":119,"line":127},2,[117,129,131],{"class":130},"s8jYJ","const",[117,133,135],{"class":134},"sBjJW"," ",[117,137,138],{"class":134},[139,140,143,146],"v-menu",{"class":141,"popper-class":142,"theme":112},"twoslash-hover","shiki twoslash-floating vp-copy-ignore",[117,144,145],{},"usd",[147,148,150],"template",{"v-slot:popper":149},"{}",[117,151,153],{"class":152,"v-pre":113},"twoslash-popup-container vp-copy-ignore",[97,154,156,159,163,166],{"class":155},"twoslash-popup-code",[117,157,131],{"style":158},"--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583",[117,160,162],{"style":161},"--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF"," usd",[117,164,165],{"style":158},":",[117,167,168],{"style":161}," 250.75",[117,170,171],{"class":130}," =",[117,173,174],{"class":134}," 250.75\n",[117,176,178,180,182,205,207],{"class":119,"line":177},3,[117,179,131],{"class":130},[117,181,135],{"class":134},[117,183,184],{"class":134},[139,185,186,189],{"class":141,"popper-class":142,"theme":112},[117,187,188],{},"rate",[147,190,191],{"v-slot:popper":149},[117,192,193],{"class":152,"v-pre":113},[97,194,195,197,200,202],{"class":155},[117,196,131],{"style":158},[117,198,199],{"style":161}," rate",[117,201,165],{"style":158},[117,203,204],{"style":161}," 7.2345",[117,206,171],{"class":130},[117,208,209],{"class":134}," 7.2345\n",[117,211,213,410,414,418,438,441,461,464,467,503,506,588,591,594,596,664,666,668,670,712,714,717],{"class":119,"line":212},4,[117,214,216],{"class":215},"snPdu",[139,217,218,221],{"class":141,"popper-class":142,"theme":112},[117,219,220],{},"calc",[147,222,223],{"v-slot:popper":149},[117,224,225,266,332],{"class":152,"v-pre":113},[97,226,227],{"class":155},[107,228,232],{"class":229,"style":230,"tabindex":231},"shiki shiki-themes github-light github-light github-dark","--shiki-light:#24292e;--shiki-default:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-default-bg:#fff;--shiki-dark-bg:#24292e","0",[97,233,234,258],{},[117,235,236,240,243,246,249,252,255],{"class":119},[117,237,239],{"style":238},"--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8","(alias) ",[117,241,220],{"style":242},"--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0",[117,244,245],{"style":238},"(expr: string, options",[117,247,248],{"style":158},"?:",[117,250,251],{"style":238}," ICalcOptions): string ",[117,253,254],{"style":158},"|",[117,256,257],{"style":238}," number",[117,259,260,263],{"class":119},[117,261,262],{"style":158},"import",[117,264,265],{"style":238}," calc",[267,268,270,273,299,302,305,322,325],"div",{"class":269},"twoslash-popup-docs vp-doc",[88,271,272],{},"Main entry point: evaluates an arithmetic expression string and optionally formats the output.",[88,274,275,276,279,280,279,283,286,287,290,291,294,295,298],{},"Expressions are pure arithmetic: the four basic operations, parentheses, and math functions\n(",[97,277,278],{},"max","\u002F",[97,281,282],{},"min",[97,284,285],{},"clamp","…). ",[92,288,289],{},"Variables are not supported"," — embed values directly in the\nexpression via template interpolation: ",[97,292,293],{},"calc(`${price} * ${qty}`)",".\nFormatting is specified via ",[97,296,297],{},"options._fmt"," (an",[88,300,301],{},"IFormat",[88,303,304],{},"object).",[88,306,307,309,310,313,314,317,318,321],{},[97,308,220],{}," is designed for ",[92,311,312],{},"computation",": on error (invalid expression, etc.) it ",[92,315,316],{},"throws\ndirectly"," and the caller is responsible for handling it.\nFor ",[92,319,320],{},"display"," scenarios that need a fallback on error, use",[88,323,324],{},"fmt",[88,326,327,328,331],{},"instead\n(same API and supports arithmetic, but returns ",[97,329,330],{},"_error"," on failure rather than throwing).",[267,333,335,356,366,390,398],{"class":334},"twoslash-popup-docs twoslash-popup-docs-tags vp-doc",[117,336,338,342],{"class":337},"twoslash-popup-docs-tag",[117,339,341],{"class":340},"twoslash-popup-docs-tag-name","@param",[117,343,345,348,349,352,353],{"class":344},"twoslash-popup-docs-tag-value",[97,346,347],{},"expr","  Arithmetic expression, e.g. ",[97,350,351],{},"'1 + 2 * 3'",", ",[97,354,355],{},"'(1 + 2) \u002F 3'",[117,357,358,360],{"class":337},[117,359,341],{"class":340},[117,361,362,365],{"class":344},[97,363,364],{},"options","  Control options (see ICalcOptions)",[117,367,368,371],{"class":337},[117,369,370],{"class":340},"@returns",[117,372,373,374,377,378,381,382,385,386,389],{"class":344},"Computation result (",[97,375,376],{},"string","; ",[97,379,380],{},"number"," when ",[97,383,384],{},"_fmt.output"," is ",[97,387,388],{},"'number'",")",[117,391,392,395],{"class":337},[117,393,394],{"class":340},"@throws",[117,396,397],{"class":344},"Throws when the expression is invalid",[117,399,400,403],{"class":337},[117,401,402],{"class":340},"@example",[117,404,405,406,409],{"class":344},"calc('1 + 2 * 3')                        \u002F\u002F '7'\ncalc(",[97,407,408],{},"${price} * ${qty}",")                \u002F\u002F use template interpolation instead of variables\ncalc('1 + 2', { _fmt: { decimals: 2 } }) \u002F\u002F '3.00'",[117,411,413],{"class":412},"sxrX7","(",[117,415,417],{"class":416},"sIIMD","`${",[117,419,420],{"class":412},[139,421,422,424],{"class":141,"popper-class":142,"theme":112},[117,423,145],{},[147,425,426],{"v-slot:popper":149},[117,427,428],{"class":152,"v-pre":113},[97,429,430,432,434,436],{"class":155},[117,431,131],{"style":158},[117,433,162],{"style":161},[117,435,165],{"style":158},[117,437,168],{"style":161},[117,439,440],{"class":416},"} * ${",[117,442,443],{"class":412},[139,444,445,447],{"class":141,"popper-class":142,"theme":112},[117,446,188],{},[147,448,449],{"v-slot:popper":149},[117,450,451],{"class":152,"v-pre":113},[97,452,453,455,457,459],{"class":155},[117,454,131],{"style":158},[117,456,199],{"style":161},[117,458,165],{"style":158},[117,460,204],{"style":161},[117,462,463],{"class":416},"}`",[117,465,466],{"class":412},", { ",[117,468,469],{"class":412},[139,470,471,474],{"class":141,"popper-class":142,"theme":112},[117,472,473],{},"_fmt",[147,475,476],{"v-slot:popper":149},[117,477,478,493],{"class":152,"v-pre":113},[97,479,480,483,485,488,490],{"class":155},[117,481,482],{"style":238},"(property) ICalcOptions._fmt",[117,484,248],{"style":158},[117,486,487],{"style":238}," IFormat ",[117,489,254],{"style":158},[117,491,492],{"style":161}," undefined",[267,494,495,498,500],{"class":269},[88,496,497],{},"Explicit format: an",[88,499,301],{},[88,501,502],{},"options object",[117,504,505],{"class":412},": { ",[117,507,508],{"class":412},[139,509,510,513],{"class":141,"popper-class":142,"theme":112},[117,511,512],{},"decimals",[147,514,515],{"v-slot:popper":149},[117,516,517,566],{"class":152,"v-pre":113},[97,518,519],{"class":155},[107,520,521],{"class":229,"style":230,"tabindex":231},[97,522,523,538,548,557],{},[117,524,525,528,530,533,535],{"class":119},[117,526,527],{"style":238},"(property) IFormat.decimals",[117,529,248],{"style":158},[117,531,532],{"style":238}," number ",[117,534,254],{"style":158},[117,536,537],{"style":238}," {",[117,539,540,543,545],{"class":119},[117,541,542],{"style":238},"    min",[117,544,248],{"style":158},[117,546,547],{"style":238}," number;",[117,549,550,553,555],{"class":119},[117,551,552],{"style":238},"    max",[117,554,248],{"style":158},[117,556,547],{"style":238},[117,558,559,562,564],{"class":119},[117,560,561],{"style":238},"} ",[117,563,254],{"style":158},[117,565,492],{"style":161},[267,567,568],{"class":269},[88,569,570,571,574,575,578,579,352,582,578,585,389],{},"Decimal places: number = fixed (",[97,572,573],{},"=N","); object = range (",[97,576,577],{},"{ max }","≡",[97,580,581],{},"\u003C=N",[97,583,584],{},"{ min }",[97,586,587],{},">=N",[117,589,590],{"class":412},": ",[117,592,593],{"class":134},"2",[117,595,352],{"class":412},[117,597,598],{"class":412},[139,599,600,603],{"class":141,"popper-class":142,"theme":112},[117,601,602],{},"thousands",[147,604,605],{"v-slot:popper":149},[117,606,607,638],{"class":152,"v-pre":113},[97,608,609,612,614,617,619,623,626,629,631,634,636],{"class":155},[117,610,611],{"style":238},"(property) IFormat.thousands",[117,613,248],{"style":158},[117,615,616],{"style":238}," boolean ",[117,618,254],{"style":158},[117,620,622],{"style":621},"--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF"," \"us\"",[117,624,625],{"style":158}," |",[117,627,628],{"style":621}," \"eu\"",[117,630,625],{"style":158},[117,632,633],{"style":621}," \"in\"",[117,635,625],{"style":158},[117,637,492],{"style":161},[267,639,640],{"class":269},[88,641,642,643,646,647,279,650,279,653,656,657,660,661,389],{},"Thousands separator: ",[97,644,645],{},"true"," = US style; or ",[97,648,649],{},"'us'",[97,651,652],{},"'eu'",[97,654,655],{},"'in'"," (≡ ",[97,658,659],{},","," \u002F ",[97,662,663],{},"!t:preset",[117,665,590],{"class":412},[117,667,645],{"class":134},[117,669,352],{"class":412},[117,671,672],{"class":412},[139,673,674,677],{"class":141,"popper-class":142,"theme":112},[117,675,676],{},"rounding",[147,678,679],{"v-slot:popper":149},[117,680,681,695],{"class":152,"v-pre":113},[97,682,683,686,688,691,693],{"class":155},[117,684,685],{"style":238},"(property) IFormat.rounding",[117,687,248],{"style":158},[117,689,690],{"style":238}," Rounding ",[117,692,254],{"style":158},[117,694,492],{"style":161},[267,696,697],{"class":269},[88,698,699,700,279,703,279,706,279,709,389],{},"Rounding strategy (",[97,701,702],{},"~5",[97,704,705],{},"~6",[97,707,708],{},"~-",[97,710,711],{},"~+",[117,713,590],{"class":412},[117,715,716],{"class":416},"'round'",[117,718,719],{"class":412}," } })\n",[117,721,723],{"class":119,"line":722},5,[117,724,725],{"class":123},"\u002F\u002F 250.75 * 7.2345 = 1814.050875 → \"1,814.05\"\n",[102,727,729],{"id":728},"why-it-matters","Why It Matters",[88,731,732],{},"A single conversion can already drift in native JS:",[107,734,736],{"className":109,"code":735,"language":111,"meta":112,"style":113},"import { fmt } from '@wzo\u002Fcalc'\n\u002F\u002F ---cut---\n19.99 * 1.1 \u002F\u002F 21.989000000000004  ← native float\nfmt('19.99 * 1.1', { decimals: 2, rounding: 'round' }) \u002F\u002F \"21.99\"  ✅ exact\n",[97,737,738,752],{"__ignoreMap":113},[117,739,740,743,746,749],{"class":119,"line":120},[117,741,742],{"class":134},"19.99",[117,744,745],{"class":130}," *",[117,747,748],{"class":134}," 1.1",[117,750,751],{"class":123}," \u002F\u002F 21.989000000000004  ← native float\n",[117,753,754,804,806,809,811,877,879,881,883,917,919,921,924],{"class":119,"line":127},[117,755,756],{"class":215},[139,757,758,760],{"class":141,"popper-class":142,"theme":112},[117,759,324],{},[147,761,762],{"v-slot:popper":149},[117,763,764],{"class":152,"v-pre":113},[97,765,766],{"class":155},[107,767,768],{"class":229,"style":230,"tabindex":231},[97,769,770,797],{},[117,771,772,774,776,779,781,783,785,788,790,793,795],{"class":119},[117,773,239],{"style":238},[117,775,324],{"style":242},[117,777,778],{"style":238},"(value: string ",[117,780,254],{"style":158},[117,782,532],{"style":238},[117,784,254],{"style":158},[117,786,787],{"style":238}," bigint, options",[117,789,248],{"style":158},[117,791,792],{"style":238}," IFmtOptions): string ",[117,794,254],{"style":158},[117,796,257],{"style":238},[117,798,799,801],{"class":119},[117,800,262],{"style":158},[117,802,803],{"style":238}," fmt",[117,805,413],{"class":412},[117,807,808],{"class":416},"'19.99 * 1.1'",[117,810,466],{"class":412},[117,812,813],{"class":412},[139,814,815,817],{"class":141,"popper-class":142,"theme":112},[117,816,512],{},[147,818,819],{"v-slot:popper":149},[117,820,821,863],{"class":152,"v-pre":113},[97,822,823],{"class":155},[107,824,825],{"class":229,"style":230,"tabindex":231},[97,826,827,839,847,855],{},[117,828,829,831,833,835,837],{"class":119},[117,830,527],{"style":238},[117,832,248],{"style":158},[117,834,532],{"style":238},[117,836,254],{"style":158},[117,838,537],{"style":238},[117,840,841,843,845],{"class":119},[117,842,542],{"style":238},[117,844,248],{"style":158},[117,846,547],{"style":238},[117,848,849,851,853],{"class":119},[117,850,552],{"style":238},[117,852,248],{"style":158},[117,854,547],{"style":238},[117,856,857,859,861],{"class":119},[117,858,561],{"style":238},[117,860,254],{"style":158},[117,862,492],{"style":161},[267,864,865],{"class":269},[88,866,570,867,574,869,578,871,352,873,578,875,389],{},[97,868,573],{},[97,870,577],{},[97,872,581],{},[97,874,584],{},[97,876,587],{},[117,878,590],{"class":412},[117,880,593],{"class":134},[117,882,352],{"class":412},[117,884,885],{"class":412},[139,886,887,889],{"class":141,"popper-class":142,"theme":112},[117,888,676],{},[147,890,891],{"v-slot:popper":149},[117,892,893,905],{"class":152,"v-pre":113},[97,894,895,897,899,901,903],{"class":155},[117,896,685],{"style":238},[117,898,248],{"style":158},[117,900,690],{"style":238},[117,902,254],{"style":158},[117,904,492],{"style":161},[267,906,907],{"class":269},[88,908,699,909,279,911,279,913,279,915,389],{},[97,910,702],{},[97,912,705],{},[97,914,708],{},[97,916,711],{},[117,918,590],{"class":412},[117,920,716],{"class":416},[117,922,923],{"class":412}," }) ",[117,925,926],{"class":123},"\u002F\u002F \"21.99\"  ✅ exact\n",[102,928,930],{"id":929},"cross-rate-via-a-base-currency","Cross-Rate via a Base Currency",[88,932,933],{},"No direct EUR→JPY rate? Compose through USD by chaining the two rates:",[107,935,937],{"className":109,"code":936,"language":111,"meta":112,"style":113},"import { chainMul } from '@wzo\u002Fcalc'\n\u002F\u002F ---cut---\n\u002F\u002F EUR → JPY via USD: ×1.08 (EUR→USD), ×150 (USD→JPY)\nconst eur = 500\nchainMul(eur, 1.08, 150)({ decimals: 0, thousands: true })\n\u002F\u002F 500 * 1.08 * 150 = \"81,000\"\n",[97,938,939,944,978,1217],{"__ignoreMap":113},[117,940,941],{"class":119,"line":120},[117,942,943],{"class":123},"\u002F\u002F EUR → JPY via USD: ×1.08 (EUR→USD), ×150 (USD→JPY)\n",[117,945,946,948,950,973,975],{"class":119,"line":127},[117,947,131],{"class":130},[117,949,135],{"class":134},[117,951,952],{"class":134},[139,953,954,957],{"class":141,"popper-class":142,"theme":112},[117,955,956],{},"eur",[147,958,959],{"v-slot:popper":149},[117,960,961],{"class":152,"v-pre":113},[97,962,963,965,968,970],{"class":155},[117,964,131],{"style":158},[117,966,967],{"style":161}," eur",[117,969,165],{"style":158},[117,971,972],{"style":161}," 500",[117,974,171],{"class":130},[117,976,977],{"class":134}," 500\n",[117,979,980,1053,1055,1075,1077,1080,1082,1085,1088,1154,1156,1158,1160,1210,1212,1214],{"class":119,"line":177},[117,981,982],{"class":215},[139,983,984,987],{"class":141,"popper-class":142,"theme":112},[117,985,986],{},"chainMul",[147,988,989],{"v-slot:popper":149},[117,990,991,1018,1027],{"class":152,"v-pre":113},[97,992,993],{"class":155},[107,994,995],{"class":229,"style":230,"tabindex":231},[97,996,997,1011],{},[117,998,999,1001,1003,1005,1008],{"class":119},[117,1000,239],{"style":238},[117,1002,986],{"style":242},[117,1004,413],{"style":238},[117,1006,1007],{"style":158},"...",[117,1009,1010],{"style":238},"args: Val$1[]): IChain",[117,1012,1013,1015],{"class":119},[117,1014,262],{"style":158},[117,1016,1017],{"style":238}," chainMul",[267,1019,1020],{"class":269},[88,1021,1022,1023,1026],{},"Starts a chaining computation with multiplication (",[97,1024,1025],{},"a * b * c ...",").",[267,1028,1029,1039,1046],{"class":334},[117,1030,1031,1033],{"class":337},[117,1032,341],{"class":340},[117,1034,1035,1038],{"class":344},[97,1036,1037],{},"args","  Initial factors to multiply together",[117,1040,1041,1043],{"class":337},[117,1042,370],{"class":340},[117,1044,1045],{"class":344},"An IChain supporting further chaining",[117,1047,1048,1050],{"class":337},[117,1049,402],{"class":340},[117,1051,1052],{"class":344},"chainMul(2, 3).add(4)() \u002F\u002F '10'",[117,1054,413],{"class":412},[117,1056,1057],{"class":412},[139,1058,1059,1061],{"class":141,"popper-class":142,"theme":112},[117,1060,956],{},[147,1062,1063],{"v-slot:popper":149},[117,1064,1065],{"class":152,"v-pre":113},[97,1066,1067,1069,1071,1073],{"class":155},[117,1068,131],{"style":158},[117,1070,967],{"style":161},[117,1072,165],{"style":158},[117,1074,972],{"style":161},[117,1076,352],{"class":412},[117,1078,1079],{"class":134},"1.08",[117,1081,352],{"class":412},[117,1083,1084],{"class":134},"150",[117,1086,1087],{"class":412},")({ ",[117,1089,1090],{"class":412},[139,1091,1092,1094],{"class":141,"popper-class":142,"theme":112},[117,1093,512],{},[147,1095,1096],{"v-slot:popper":149},[117,1097,1098,1140],{"class":152,"v-pre":113},[97,1099,1100],{"class":155},[107,1101,1102],{"class":229,"style":230,"tabindex":231},[97,1103,1104,1116,1124,1132],{},[117,1105,1106,1108,1110,1112,1114],{"class":119},[117,1107,527],{"style":238},[117,1109,248],{"style":158},[117,1111,532],{"style":238},[117,1113,254],{"style":158},[117,1115,537],{"style":238},[117,1117,1118,1120,1122],{"class":119},[117,1119,542],{"style":238},[117,1121,248],{"style":158},[117,1123,547],{"style":238},[117,1125,1126,1128,1130],{"class":119},[117,1127,552],{"style":238},[117,1129,248],{"style":158},[117,1131,547],{"style":238},[117,1133,1134,1136,1138],{"class":119},[117,1135,561],{"style":238},[117,1137,254],{"style":158},[117,1139,492],{"style":161},[267,1141,1142],{"class":269},[88,1143,570,1144,574,1146,578,1148,352,1150,578,1152,389],{},[97,1145,573],{},[97,1147,577],{},[97,1149,581],{},[97,1151,584],{},[97,1153,587],{},[117,1155,590],{"class":412},[117,1157,231],{"class":134},[117,1159,352],{"class":412},[117,1161,1162],{"class":412},[139,1163,1164,1166],{"class":141,"popper-class":142,"theme":112},[117,1165,602],{},[147,1167,1168],{"v-slot:popper":149},[117,1169,1170,1194],{"class":152,"v-pre":113},[97,1171,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192],{"class":155},[117,1173,611],{"style":238},[117,1175,248],{"style":158},[117,1177,616],{"style":238},[117,1179,254],{"style":158},[117,1181,622],{"style":621},[117,1183,625],{"style":158},[117,1185,628],{"style":621},[117,1187,625],{"style":158},[117,1189,633],{"style":621},[117,1191,625],{"style":158},[117,1193,492],{"style":161},[267,1195,1196],{"class":269},[88,1197,642,1198,646,1200,279,1202,279,1204,656,1206,660,1208,389],{},[97,1199,645],{},[97,1201,649],{},[97,1203,652],{},[97,1205,655],{},[97,1207,659],{},[97,1209,663],{},[117,1211,590],{"class":412},[117,1213,645],{"class":134},[117,1215,1216],{"class":412}," })\n",[117,1218,1219],{"class":119,"line":212},[117,1220,1221],{"class":123},"\u002F\u002F 500 * 1.08 * 150 = \"81,000\"\n",[102,1223,1225],{"id":1224},"multi-currency-portfolio","Multi-Currency Portfolio",[88,1227,1228,1229,1232],{},"Convert each holding to a common currency, then total with ",[97,1230,1231],{},"calcSum"," (high-precision, no large-number drift):",[107,1234,1236],{"className":109,"code":1235,"language":111,"meta":112,"style":113},"import { calcSum, fmt, mulStr } from '@wzo\u002Fcalc'\n\u002F\u002F ---cut---\nconst holdings = [\n    { ccy: 'EUR', amount: 1200, toUsd: 1.08 },\n    { ccy: 'GBP', amount: 800, toUsd: 1.27 },\n    { ccy: 'JPY', amount: 150000, toUsd: 0.0067 },\n]\n\n\u002F\u002F Value each holding in USD (string-returning, exact)\nconst inUsd = holdings.map(h => ({\n    ...h,\n    usd: mulStr(String(h.amount), String(h.toUsd)),\n}))\n\u002F\u002F EUR 1296 · GBP 1016 · JPY 1005\n\nfmt(calcSum('usd', inUsd), { decimals: 2, thousands: true }) \u002F\u002F \"3,317.00\"\n",[97,1237,1238,1318,1404,1483,1562,1567,1574,1580,2119,2174,2514,2520,2526,2531],{"__ignoreMap":113},[117,1239,1240,1242,1244,1313,1315],{"class":119,"line":120},[117,1241,131],{"class":130},[117,1243,135],{"class":134},[117,1245,1246],{"class":134},[139,1247,1248,1251],{"class":141,"popper-class":142,"theme":112},[117,1249,1250],{},"holdings",[147,1252,1253],{"v-slot:popper":149},[117,1254,1255],{"class":152,"v-pre":113},[97,1256,1257],{"class":155},[107,1258,1259],{"class":229,"style":230,"tabindex":231},[97,1260,1261,1272,1286,1297,1308],{},[117,1262,1263,1265,1268,1270],{"class":119},[117,1264,131],{"style":158},[117,1266,1267],{"style":161}," holdings",[117,1269,165],{"style":158},[117,1271,537],{"style":238},[117,1273,1274,1278,1280,1283],{"class":119},[117,1275,1277],{"style":1276},"--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70","    ccy",[117,1279,165],{"style":158},[117,1281,1282],{"style":161}," string",[117,1284,1285],{"style":238},";",[117,1287,1288,1291,1293,1295],{"class":119},[117,1289,1290],{"style":1276},"    amount",[117,1292,165],{"style":158},[117,1294,257],{"style":161},[117,1296,1285],{"style":238},[117,1298,1299,1302,1304,1306],{"class":119},[117,1300,1301],{"style":1276},"    toUsd",[117,1303,165],{"style":158},[117,1305,257],{"style":161},[117,1307,1285],{"style":238},[117,1309,1310],{"class":119},[117,1311,1312],{"style":238},"}[]",[117,1314,171],{"class":130},[117,1316,1317],{"class":412}," [\n",[117,1319,1320,1323,1344,1346,1349,1351,1371,1373,1376,1378,1397,1399,1401],{"class":119,"line":127},[117,1321,1322],{"class":412},"    { ",[117,1324,1325],{"class":412},[139,1326,1327,1330],{"class":141,"popper-class":142,"theme":112},[117,1328,1329],{},"ccy",[147,1331,1332],{"v-slot:popper":149},[117,1333,1334],{"class":152,"v-pre":113},[97,1335,1336,1339,1341],{"class":155},[117,1337,1338],{"style":238},"(property) ",[117,1340,1329],{"style":242},[117,1342,1343],{"style":238},": string",[117,1345,590],{"class":412},[117,1347,1348],{"class":416},"'EUR'",[117,1350,352],{"class":412},[117,1352,1353],{"class":412},[139,1354,1355,1358],{"class":141,"popper-class":142,"theme":112},[117,1356,1357],{},"amount",[147,1359,1360],{"v-slot:popper":149},[117,1361,1362],{"class":152,"v-pre":113},[97,1363,1364,1366,1368],{"class":155},[117,1365,1338],{"style":238},[117,1367,1357],{"style":242},[117,1369,1370],{"style":238},": number",[117,1372,590],{"class":412},[117,1374,1375],{"class":134},"1200",[117,1377,352],{"class":412},[117,1379,1380],{"class":412},[139,1381,1382,1385],{"class":141,"popper-class":142,"theme":112},[117,1383,1384],{},"toUsd",[147,1386,1387],{"v-slot:popper":149},[117,1388,1389],{"class":152,"v-pre":113},[97,1390,1391,1393,1395],{"class":155},[117,1392,1338],{"style":238},[117,1394,1384],{"style":242},[117,1396,1370],{"style":238},[117,1398,590],{"class":412},[117,1400,1079],{"class":134},[117,1402,1403],{"class":412}," },\n",[117,1405,1406,1408,1426,1428,1431,1433,1451,1453,1456,1458,1476,1478,1481],{"class":119,"line":177},[117,1407,1322],{"class":412},[117,1409,1410],{"class":412},[139,1411,1412,1414],{"class":141,"popper-class":142,"theme":112},[117,1413,1329],{},[147,1415,1416],{"v-slot:popper":149},[117,1417,1418],{"class":152,"v-pre":113},[97,1419,1420,1422,1424],{"class":155},[117,1421,1338],{"style":238},[117,1423,1329],{"style":242},[117,1425,1343],{"style":238},[117,1427,590],{"class":412},[117,1429,1430],{"class":416},"'GBP'",[117,1432,352],{"class":412},[117,1434,1435],{"class":412},[139,1436,1437,1439],{"class":141,"popper-class":142,"theme":112},[117,1438,1357],{},[147,1440,1441],{"v-slot:popper":149},[117,1442,1443],{"class":152,"v-pre":113},[97,1444,1445,1447,1449],{"class":155},[117,1446,1338],{"style":238},[117,1448,1357],{"style":242},[117,1450,1370],{"style":238},[117,1452,590],{"class":412},[117,1454,1455],{"class":134},"800",[117,1457,352],{"class":412},[117,1459,1460],{"class":412},[139,1461,1462,1464],{"class":141,"popper-class":142,"theme":112},[117,1463,1384],{},[147,1465,1466],{"v-slot:popper":149},[117,1467,1468],{"class":152,"v-pre":113},[97,1469,1470,1472,1474],{"class":155},[117,1471,1338],{"style":238},[117,1473,1384],{"style":242},[117,1475,1370],{"style":238},[117,1477,590],{"class":412},[117,1479,1480],{"class":134},"1.27",[117,1482,1403],{"class":412},[117,1484,1485,1487,1505,1507,1510,1512,1530,1532,1535,1537,1555,1557,1560],{"class":119,"line":212},[117,1486,1322],{"class":412},[117,1488,1489],{"class":412},[139,1490,1491,1493],{"class":141,"popper-class":142,"theme":112},[117,1492,1329],{},[147,1494,1495],{"v-slot:popper":149},[117,1496,1497],{"class":152,"v-pre":113},[97,1498,1499,1501,1503],{"class":155},[117,1500,1338],{"style":238},[117,1502,1329],{"style":242},[117,1504,1343],{"style":238},[117,1506,590],{"class":412},[117,1508,1509],{"class":416},"'JPY'",[117,1511,352],{"class":412},[117,1513,1514],{"class":412},[139,1515,1516,1518],{"class":141,"popper-class":142,"theme":112},[117,1517,1357],{},[147,1519,1520],{"v-slot:popper":149},[117,1521,1522],{"class":152,"v-pre":113},[97,1523,1524,1526,1528],{"class":155},[117,1525,1338],{"style":238},[117,1527,1357],{"style":242},[117,1529,1370],{"style":238},[117,1531,590],{"class":412},[117,1533,1534],{"class":134},"150000",[117,1536,352],{"class":412},[117,1538,1539],{"class":412},[139,1540,1541,1543],{"class":141,"popper-class":142,"theme":112},[117,1542,1384],{},[147,1544,1545],{"v-slot:popper":149},[117,1546,1547],{"class":152,"v-pre":113},[97,1548,1549,1551,1553],{"class":155},[117,1550,1338],{"style":238},[117,1552,1384],{"style":242},[117,1554,1370],{"style":238},[117,1556,590],{"class":412},[117,1558,1559],{"class":134},"0.0067",[117,1561,1403],{"class":412},[117,1563,1564],{"class":119,"line":722},[117,1565,1566],{"class":412},"]\n",[117,1568,1570],{"class":119,"line":1569},6,[117,1571,1573],{"emptyLinePlaceholder":1572},true,"\n",[117,1575,1577],{"class":119,"line":1576},7,[117,1578,1579],{"class":123},"\u002F\u002F Value each holding in USD (string-returning, exact)\n",[117,1581,1583,1585,1587,1660,1662,1664,1724,1727,2058,2060,2113,2116],{"class":119,"line":1582},8,[117,1584,131],{"class":130},[117,1586,135],{"class":134},[117,1588,1589],{"class":134},[139,1590,1591,1594],{"class":141,"popper-class":142,"theme":112},[117,1592,1593],{},"inUsd",[147,1595,1596],{"v-slot:popper":149},[117,1597,1598],{"class":152,"v-pre":113},[97,1599,1600],{"class":155},[107,1601,1602],{"class":229,"style":230,"tabindex":231},[97,1603,1604,1615,1626,1636,1646,1656],{},[117,1605,1606,1608,1611,1613],{"class":119},[117,1607,131],{"style":158},[117,1609,1610],{"style":161}," inUsd",[117,1612,165],{"style":158},[117,1614,537],{"style":238},[117,1616,1617,1620,1622,1624],{"class":119},[117,1618,1619],{"style":1276},"    usd",[117,1621,165],{"style":158},[117,1623,1282],{"style":161},[117,1625,1285],{"style":238},[117,1627,1628,1630,1632,1634],{"class":119},[117,1629,1277],{"style":1276},[117,1631,165],{"style":158},[117,1633,1282],{"style":161},[117,1635,1285],{"style":238},[117,1637,1638,1640,1642,1644],{"class":119},[117,1639,1290],{"style":1276},[117,1641,165],{"style":158},[117,1643,257],{"style":161},[117,1645,1285],{"style":238},[117,1647,1648,1650,1652,1654],{"class":119},[117,1649,1301],{"style":1276},[117,1651,165],{"style":158},[117,1653,257],{"style":161},[117,1655,1285],{"style":238},[117,1657,1658],{"class":119},[117,1659,1312],{"style":238},[117,1661,171],{"class":130},[117,1663,135],{"class":412},[117,1665,1666],{"class":412},[139,1667,1668,1670],{"class":141,"popper-class":142,"theme":112},[117,1669,1250],{},[147,1671,1672],{"v-slot:popper":149},[117,1673,1674],{"class":152,"v-pre":113},[97,1675,1676],{"class":155},[107,1677,1678],{"class":229,"style":230,"tabindex":231},[97,1679,1680,1690,1700,1710,1720],{},[117,1681,1682,1684,1686,1688],{"class":119},[117,1683,131],{"style":158},[117,1685,1267],{"style":161},[117,1687,165],{"style":158},[117,1689,537],{"style":238},[117,1691,1692,1694,1696,1698],{"class":119},[117,1693,1277],{"style":1276},[117,1695,165],{"style":158},[117,1697,1282],{"style":161},[117,1699,1285],{"style":238},[117,1701,1702,1704,1706,1708],{"class":119},[117,1703,1290],{"style":1276},[117,1705,165],{"style":158},[117,1707,257],{"style":161},[117,1709,1285],{"style":238},[117,1711,1712,1714,1716,1718],{"class":119},[117,1713,1301],{"style":1276},[117,1715,165],{"style":158},[117,1717,257],{"style":161},[117,1719,1285],{"style":238},[117,1721,1722],{"class":119},[117,1723,1312],{"style":238},[117,1725,1726],{"class":412},".",[117,1728,1729],{"class":215},[139,1730,1731,1734],{"class":141,"popper-class":142,"theme":112},[117,1732,1733],{},"map",[147,1735,1736],{"v-slot:popper":149},[117,1737,1738,2033,2038],{"class":152,"v-pre":113},[97,1739,1740],{"class":155},[107,1741,1742],{"class":229,"style":230,"tabindex":231},[97,1743,1744,1780,1790,1800,1810,1820,1840,1850,1860,1870,1891,1901,1911,1921,1931,1941,1951,1961,1971,1989,1999,2009,2019,2029],{},[117,1745,1746,1749,1752,1755,1757,1760,1762,1765,1767,1770,1773,1775,1777],{"class":119},[117,1747,1748],{"style":238},"(method) Array",[117,1750,1751],{"style":158},"\u003C",[117,1753,1754],{"style":238},"{ ",[117,1756,1329],{"style":242},[117,1758,1759],{"style":238},": string; ",[117,1761,1357],{"style":242},[117,1763,1764],{"style":238},": number; ",[117,1766,1384],{"style":242},[117,1768,1769],{"style":238},": number; }",[117,1771,1772],{"style":158},">",[117,1774,1726],{"style":238},[117,1776,1733],{"style":242},[117,1778,1779],{"style":238},"\u003C{",[117,1781,1782,1784,1786,1788],{"class":119},[117,1783,1619],{"style":1276},[117,1785,165],{"style":158},[117,1787,1282],{"style":161},[117,1789,1285],{"style":238},[117,1791,1792,1794,1796,1798],{"class":119},[117,1793,1277],{"style":1276},[117,1795,165],{"style":158},[117,1797,1282],{"style":161},[117,1799,1285],{"style":238},[117,1801,1802,1804,1806,1808],{"class":119},[117,1803,1290],{"style":1276},[117,1805,165],{"style":158},[117,1807,257],{"style":161},[117,1809,1285],{"style":238},[117,1811,1812,1814,1816,1818],{"class":119},[117,1813,1301],{"style":1276},[117,1815,165],{"style":158},[117,1817,257],{"style":161},[117,1819,1285],{"style":238},[117,1821,1822,1825,1828,1830,1833,1836,1838],{"class":119},[117,1823,1824],{"style":238},"}>(",[117,1826,1827],{"style":242},"callbackfn",[117,1829,165],{"style":158},[117,1831,1832],{"style":238}," (",[117,1834,1835],{"style":1276},"value",[117,1837,165],{"style":158},[117,1839,537],{"style":238},[117,1841,1842,1844,1846,1848],{"class":119},[117,1843,1277],{"style":1276},[117,1845,165],{"style":158},[117,1847,1282],{"style":161},[117,1849,1285],{"style":238},[117,1851,1852,1854,1856,1858],{"class":119},[117,1853,1290],{"style":1276},[117,1855,165],{"style":158},[117,1857,257],{"style":161},[117,1859,1285],{"style":238},[117,1861,1862,1864,1866,1868],{"class":119},[117,1863,1301],{"style":1276},[117,1865,165],{"style":158},[117,1867,257],{"style":161},[117,1869,1285],{"style":238},[117,1871,1872,1875,1878,1880,1882,1884,1887,1889],{"class":119},[117,1873,1874],{"style":238},"}, ",[117,1876,1877],{"style":1276},"index",[117,1879,165],{"style":158},[117,1881,257],{"style":161},[117,1883,352],{"style":238},[117,1885,1886],{"style":1276},"array",[117,1888,165],{"style":158},[117,1890,537],{"style":238},[117,1892,1893,1895,1897,1899],{"class":119},[117,1894,1277],{"style":1276},[117,1896,165],{"style":158},[117,1898,1282],{"style":161},[117,1900,1285],{"style":238},[117,1902,1903,1905,1907,1909],{"class":119},[117,1904,1290],{"style":1276},[117,1906,165],{"style":158},[117,1908,257],{"style":161},[117,1910,1285],{"style":238},[117,1912,1913,1915,1917,1919],{"class":119},[117,1914,1301],{"style":1276},[117,1916,165],{"style":158},[117,1918,257],{"style":161},[117,1920,1285],{"style":238},[117,1922,1923,1926,1929],{"class":119},[117,1924,1925],{"style":238},"}[]) ",[117,1927,1928],{"style":158},"=>",[117,1930,537],{"style":238},[117,1932,1933,1935,1937,1939],{"class":119},[117,1934,1619],{"style":1276},[117,1936,165],{"style":158},[117,1938,1282],{"style":161},[117,1940,1285],{"style":238},[117,1942,1943,1945,1947,1949],{"class":119},[117,1944,1277],{"style":1276},[117,1946,165],{"style":158},[117,1948,1282],{"style":161},[117,1950,1285],{"style":238},[117,1952,1953,1955,1957,1959],{"class":119},[117,1954,1290],{"style":1276},[117,1956,165],{"style":158},[117,1958,257],{"style":161},[117,1960,1285],{"style":238},[117,1962,1963,1965,1967,1969],{"class":119},[117,1964,1301],{"style":1276},[117,1966,165],{"style":158},[117,1968,257],{"style":161},[117,1970,1285],{"style":238},[117,1972,1973,1975,1978,1980,1983,1985,1987],{"class":119},[117,1974,1874],{"style":238},[117,1976,1977],{"style":1276},"thisArg",[117,1979,248],{"style":158},[117,1981,1982],{"style":161}," any",[117,1984,389],{"style":238},[117,1986,165],{"style":158},[117,1988,537],{"style":238},[117,1990,1991,1993,1995,1997],{"class":119},[117,1992,1619],{"style":1276},[117,1994,165],{"style":158},[117,1996,1282],{"style":161},[117,1998,1285],{"style":238},[117,2000,2001,2003,2005,2007],{"class":119},[117,2002,1277],{"style":1276},[117,2004,165],{"style":158},[117,2006,1282],{"style":161},[117,2008,1285],{"style":238},[117,2010,2011,2013,2015,2017],{"class":119},[117,2012,1290],{"style":1276},[117,2014,165],{"style":158},[117,2016,257],{"style":161},[117,2018,1285],{"style":238},[117,2020,2021,2023,2025,2027],{"class":119},[117,2022,1301],{"style":1276},[117,2024,165],{"style":158},[117,2026,257],{"style":161},[117,2028,1285],{"style":238},[117,2030,2031],{"class":119},[117,2032,1312],{"style":238},[267,2034,2035],{"class":269},[88,2036,2037],{},"Calls a defined callback function on each element of an array, and returns an array that contains the results.",[267,2039,2040,2049],{"class":334},[117,2041,2042,2044],{"class":337},[117,2043,341],{"class":340},[117,2045,2046,2048],{"class":344},[97,2047,1827],{},"  A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.",[117,2050,2051,2053],{"class":337},[117,2052,341],{"class":340},[117,2054,2055,2057],{"class":344},[97,2056,1977],{},"  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.",[117,2059,413],{"class":412},[117,2061,2063],{"class":2062},"sP4rz",[139,2064,2065,2068],{"class":141,"popper-class":142,"theme":112},[117,2066,2067],{},"h",[147,2069,2070],{"v-slot:popper":149},[117,2071,2072],{"class":152,"v-pre":113},[97,2073,2074],{"class":155},[107,2075,2076],{"class":229,"style":230,"tabindex":231},[97,2077,2078,2088,2095,2102,2108],{},[117,2079,2080,2083,2085],{"class":119},[117,2081,2082],{"style":238},"(parameter) ",[117,2084,2067],{"style":242},[117,2086,2087],{"style":238},": {",[117,2089,2090,2092],{"class":119},[117,2091,1277],{"style":242},[117,2093,2094],{"style":238},": string;",[117,2096,2097,2099],{"class":119},[117,2098,1290],{"style":242},[117,2100,2101],{"style":238},": number;",[117,2103,2104,2106],{"class":119},[117,2105,1301],{"style":242},[117,2107,2101],{"style":238},[117,2109,2110],{"class":119},[117,2111,2112],{"style":238},"}",[117,2114,2115],{"class":130}," =>",[117,2117,2118],{"class":412}," ({\n",[117,2120,2122,2125,2171],{"class":119,"line":2121},9,[117,2123,2124],{"class":130},"    ...",[117,2126,2127],{"class":412},[139,2128,2129,2131],{"class":141,"popper-class":142,"theme":112},[117,2130,2067],{},[147,2132,2133],{"v-slot:popper":149},[117,2134,2135],{"class":152,"v-pre":113},[97,2136,2137],{"class":155},[107,2138,2139],{"class":229,"style":230,"tabindex":231},[97,2140,2141,2149,2155,2161,2167],{},[117,2142,2143,2145,2147],{"class":119},[117,2144,2082],{"style":238},[117,2146,2067],{"style":242},[117,2148,2087],{"style":238},[117,2150,2151,2153],{"class":119},[117,2152,1277],{"style":242},[117,2154,2094],{"style":238},[117,2156,2157,2159],{"class":119},[117,2158,1290],{"style":242},[117,2160,2101],{"style":238},[117,2162,2163,2165],{"class":119},[117,2164,1301],{"style":242},[117,2166,2101],{"style":238},[117,2168,2169],{"class":119},[117,2170,2112],{"style":238},[117,2172,2173],{"class":412},",\n",[117,2175,2177,2180,2198,2200,2272,2274,2326,2328,2374,2376,2394,2397,2443,2445,2491,2493,2511],{"class":119,"line":2176},10,[117,2178,2179],{"class":412},"    ",[117,2181,2182],{"class":412},[139,2183,2184,2186],{"class":141,"popper-class":142,"theme":112},[117,2185,145],{},[147,2187,2188],{"v-slot:popper":149},[117,2189,2190],{"class":152,"v-pre":113},[97,2191,2192,2194,2196],{"class":155},[117,2193,1338],{"style":238},[117,2195,145],{"style":242},[117,2197,1343],{"style":238},[117,2199,590],{"class":412},[117,2201,2202],{"class":215},[139,2203,2204,2207],{"class":141,"popper-class":142,"theme":112},[117,2205,2206],{},"mulStr",[147,2208,2209],{"v-slot:popper":149},[117,2210,2211,2237,2245],{"class":152,"v-pre":113},[97,2212,2213],{"class":155},[107,2214,2215],{"class":229,"style":230,"tabindex":231},[97,2216,2217,2230],{},[117,2218,2219,2221,2223,2225,2227],{"class":119},[117,2220,239],{"style":238},[117,2222,2206],{"style":242},[117,2224,413],{"style":238},[117,2226,1007],{"style":158},[117,2228,2229],{"style":238},"args: Val[]): string",[117,2231,2232,2234],{"class":119},[117,2233,262],{"style":158},[117,2235,2236],{"style":238}," mulStr",[267,2238,2239],{"class":269},[88,2240,2241,2242,2244],{},"High-precision multiplication, result as ",[97,2243,376],{},", factors multiplied left to right.",[267,2246,2247,2256,2265],{"class":334},[117,2248,2249,2251],{"class":337},[117,2250,341],{"class":340},[117,2252,2253,2255],{"class":344},[97,2254,1037],{},"  Any number of factors",[117,2257,2258,2260],{"class":337},[117,2259,370],{"class":340},[117,2261,2262,2263,389],{"class":344},"Product (",[97,2264,376],{},[117,2266,2267,2269],{"class":337},[117,2268,402],{"class":340},[117,2270,2271],{"class":344},"mulStr('0.1', '0.2') \u002F\u002F '0.02'",[117,2273,413],{"class":412},[117,2275,2276],{"class":215},[139,2277,2278,2281],{"class":141,"popper-class":142,"theme":112},[117,2279,2280],{},"String",[147,2282,2283],{"v-slot:popper":149},[117,2284,2285,2321],{"class":152,"v-pre":113},[97,2286,2287],{"class":155},[107,2288,2289],{"class":229,"style":230,"tabindex":231},[97,2290,2291,2304],{},[117,2292,2293,2296,2299,2301],{"class":119},[117,2294,2295],{"style":158},"var",[117,2297,2298],{"style":238}," String",[117,2300,165],{"style":158},[117,2302,2303],{"style":242}," StringConstructor",[117,2305,2306,2308,2310,2312,2314,2317,2319],{"class":119},[117,2307,413],{"style":238},[117,2309,1835],{"style":1276},[117,2311,248],{"style":158},[117,2313,1982],{"style":161},[117,2315,2316],{"style":238},") ",[117,2318,1928],{"style":158},[117,2320,1282],{"style":238},[267,2322,2323],{"class":269},[88,2324,2325],{},"Allows manipulation and formatting of text strings and determination and location of substrings within strings.",[117,2327,413],{"class":412},[117,2329,2330],{"class":412},[139,2331,2332,2334],{"class":141,"popper-class":142,"theme":112},[117,2333,2067],{},[147,2335,2336],{"v-slot:popper":149},[117,2337,2338],{"class":152,"v-pre":113},[97,2339,2340],{"class":155},[107,2341,2342],{"class":229,"style":230,"tabindex":231},[97,2343,2344,2352,2358,2364,2370],{},[117,2345,2346,2348,2350],{"class":119},[117,2347,2082],{"style":238},[117,2349,2067],{"style":242},[117,2351,2087],{"style":238},[117,2353,2354,2356],{"class":119},[117,2355,1277],{"style":242},[117,2357,2094],{"style":238},[117,2359,2360,2362],{"class":119},[117,2361,1290],{"style":242},[117,2363,2101],{"style":238},[117,2365,2366,2368],{"class":119},[117,2367,1301],{"style":242},[117,2369,2101],{"style":238},[117,2371,2372],{"class":119},[117,2373,2112],{"style":238},[117,2375,1726],{"class":412},[117,2377,2378],{"class":412},[139,2379,2380,2382],{"class":141,"popper-class":142,"theme":112},[117,2381,1357],{},[147,2383,2384],{"v-slot:popper":149},[117,2385,2386],{"class":152,"v-pre":113},[97,2387,2388,2390,2392],{"class":155},[117,2389,1338],{"style":238},[117,2391,1357],{"style":242},[117,2393,1370],{"style":238},[117,2395,2396],{"class":412},"), ",[117,2398,2399],{"class":215},[139,2400,2401,2403],{"class":141,"popper-class":142,"theme":112},[117,2402,2280],{},[147,2404,2405],{"v-slot:popper":149},[117,2406,2407,2439],{"class":152,"v-pre":113},[97,2408,2409],{"class":155},[107,2410,2411],{"class":229,"style":230,"tabindex":231},[97,2412,2413,2423],{},[117,2414,2415,2417,2419,2421],{"class":119},[117,2416,2295],{"style":158},[117,2418,2298],{"style":238},[117,2420,165],{"style":158},[117,2422,2303],{"style":242},[117,2424,2425,2427,2429,2431,2433,2435,2437],{"class":119},[117,2426,413],{"style":238},[117,2428,1835],{"style":1276},[117,2430,248],{"style":158},[117,2432,1982],{"style":161},[117,2434,2316],{"style":238},[117,2436,1928],{"style":158},[117,2438,1282],{"style":238},[267,2440,2441],{"class":269},[88,2442,2325],{},[117,2444,413],{"class":412},[117,2446,2447],{"class":412},[139,2448,2449,2451],{"class":141,"popper-class":142,"theme":112},[117,2450,2067],{},[147,2452,2453],{"v-slot:popper":149},[117,2454,2455],{"class":152,"v-pre":113},[97,2456,2457],{"class":155},[107,2458,2459],{"class":229,"style":230,"tabindex":231},[97,2460,2461,2469,2475,2481,2487],{},[117,2462,2463,2465,2467],{"class":119},[117,2464,2082],{"style":238},[117,2466,2067],{"style":242},[117,2468,2087],{"style":238},[117,2470,2471,2473],{"class":119},[117,2472,1277],{"style":242},[117,2474,2094],{"style":238},[117,2476,2477,2479],{"class":119},[117,2478,1290],{"style":242},[117,2480,2101],{"style":238},[117,2482,2483,2485],{"class":119},[117,2484,1301],{"style":242},[117,2486,2101],{"style":238},[117,2488,2489],{"class":119},[117,2490,2112],{"style":238},[117,2492,1726],{"class":412},[117,2494,2495],{"class":412},[139,2496,2497,2499],{"class":141,"popper-class":142,"theme":112},[117,2498,1384],{},[147,2500,2501],{"v-slot:popper":149},[117,2502,2503],{"class":152,"v-pre":113},[97,2504,2505,2507,2509],{"class":155},[117,2506,1338],{"style":238},[117,2508,1384],{"style":242},[117,2510,1370],{"style":238},[117,2512,2513],{"class":412},")),\n",[117,2515,2517],{"class":119,"line":2516},11,[117,2518,2519],{"class":412},"}))\n",[117,2521,2523],{"class":119,"line":2522},12,[117,2524,2525],{"class":123},"\u002F\u002F EUR 1296 · GBP 1016 · JPY 1005\n",[117,2527,2529],{"class":119,"line":2528},13,[117,2530,1573],{"emptyLinePlaceholder":1572},[117,2532,2534,2580,2582,2675,2677,2680,2682,2752,2755,2821,2823,2825,2827,2877,2879,2881,2883],{"class":119,"line":2533},14,[117,2535,2536],{"class":215},[139,2537,2538,2540],{"class":141,"popper-class":142,"theme":112},[117,2539,324],{},[147,2541,2542],{"v-slot:popper":149},[117,2543,2544],{"class":152,"v-pre":113},[97,2545,2546],{"class":155},[107,2547,2548],{"class":229,"style":230,"tabindex":231},[97,2549,2550,2574],{},[117,2551,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572],{"class":119},[117,2553,239],{"style":238},[117,2555,324],{"style":242},[117,2557,778],{"style":238},[117,2559,254],{"style":158},[117,2561,532],{"style":238},[117,2563,254],{"style":158},[117,2565,787],{"style":238},[117,2567,248],{"style":158},[117,2569,792],{"style":238},[117,2571,254],{"style":158},[117,2573,257],{"style":238},[117,2575,2576,2578],{"class":119},[117,2577,262],{"style":158},[117,2579,803],{"style":238},[117,2581,413],{"class":412},[117,2583,2584],{"class":215},[139,2585,2586,2588],{"class":141,"popper-class":142,"theme":112},[117,2587,1231],{},[147,2589,2590],{"v-slot:popper":149},[117,2591,2592,2624,2629],{"class":152,"v-pre":113},[97,2593,2594],{"class":155},[107,2595,2596],{"class":229,"style":230,"tabindex":231},[97,2597,2598,2617],{},[117,2599,2600,2602,2604,2607,2609,2612,2614],{"class":119},[117,2601,239],{"style":238},[117,2603,1231],{"style":242},[117,2605,2606],{"style":238},"(keyOrArr: string ",[117,2608,254],{"style":158},[117,2610,2611],{"style":238}," Val$2[], list",[117,2613,248],{"style":158},[117,2615,2616],{"style":238}," Item[]): string",[117,2618,2619,2621],{"class":119},[117,2620,262],{"style":158},[117,2622,2623],{"style":238}," calcSum",[267,2625,2626],{"class":269},[88,2627,2628],{},"Computes the sum. Accepts two call forms: a direct value array, or a field name with an array of objects.",[267,2630,2631,2648,2658,2668],{"class":334},[117,2632,2633,2635],{"class":337},[117,2634,341],{"class":340},[117,2636,2637,2640,2641,2644,2645,389],{"class":344},[97,2638,2639],{},"keyOrArr","  Value array (",[97,2642,2643],{},"[1, 2, 3]",") or the field name to sum (",[97,2646,2647],{},"'price'",[117,2649,2650,2652],{"class":337},[117,2651,341],{"class":340},[117,2653,2654,2657],{"class":344},[97,2655,2656],{},"list","  Array of objects, required when the first argument is a field name",[117,2659,2660,2662],{"class":337},[117,2661,370],{"class":340},[117,2663,2664,2665,2667],{"class":344},"Total sum (",[97,2666,376],{},", high precision)",[117,2669,2670,2672],{"class":337},[117,2671,402],{"class":340},[117,2673,2674],{"class":344},"calcSum([1, 2, 3])                              \u002F\u002F '6'\ncalcSum('price', [{ price: 10 }, { price: 20 }]) \u002F\u002F '30'",[117,2676,413],{"class":412},[117,2678,2679],{"class":416},"'usd'",[117,2681,352],{"class":412},[117,2683,2684],{"class":412},[139,2685,2686,2688],{"class":141,"popper-class":142,"theme":112},[117,2687,1593],{},[147,2689,2690],{"v-slot:popper":149},[117,2691,2692],{"class":152,"v-pre":113},[97,2693,2694],{"class":155},[107,2695,2696],{"class":229,"style":230,"tabindex":231},[97,2697,2698,2708,2718,2728,2738,2748],{},[117,2699,2700,2702,2704,2706],{"class":119},[117,2701,131],{"style":158},[117,2703,1610],{"style":161},[117,2705,165],{"style":158},[117,2707,537],{"style":238},[117,2709,2710,2712,2714,2716],{"class":119},[117,2711,1619],{"style":1276},[117,2713,165],{"style":158},[117,2715,1282],{"style":161},[117,2717,1285],{"style":238},[117,2719,2720,2722,2724,2726],{"class":119},[117,2721,1277],{"style":1276},[117,2723,165],{"style":158},[117,2725,1282],{"style":161},[117,2727,1285],{"style":238},[117,2729,2730,2732,2734,2736],{"class":119},[117,2731,1290],{"style":1276},[117,2733,165],{"style":158},[117,2735,257],{"style":161},[117,2737,1285],{"style":238},[117,2739,2740,2742,2744,2746],{"class":119},[117,2741,1301],{"style":1276},[117,2743,165],{"style":158},[117,2745,257],{"style":161},[117,2747,1285],{"style":238},[117,2749,2750],{"class":119},[117,2751,1312],{"style":238},[117,2753,2754],{"class":412},"), { ",[117,2756,2757],{"class":412},[139,2758,2759,2761],{"class":141,"popper-class":142,"theme":112},[117,2760,512],{},[147,2762,2763],{"v-slot:popper":149},[117,2764,2765,2807],{"class":152,"v-pre":113},[97,2766,2767],{"class":155},[107,2768,2769],{"class":229,"style":230,"tabindex":231},[97,2770,2771,2783,2791,2799],{},[117,2772,2773,2775,2777,2779,2781],{"class":119},[117,2774,527],{"style":238},[117,2776,248],{"style":158},[117,2778,532],{"style":238},[117,2780,254],{"style":158},[117,2782,537],{"style":238},[117,2784,2785,2787,2789],{"class":119},[117,2786,542],{"style":238},[117,2788,248],{"style":158},[117,2790,547],{"style":238},[117,2792,2793,2795,2797],{"class":119},[117,2794,552],{"style":238},[117,2796,248],{"style":158},[117,2798,547],{"style":238},[117,2800,2801,2803,2805],{"class":119},[117,2802,561],{"style":238},[117,2804,254],{"style":158},[117,2806,492],{"style":161},[267,2808,2809],{"class":269},[88,2810,570,2811,574,2813,578,2815,352,2817,578,2819,389],{},[97,2812,573],{},[97,2814,577],{},[97,2816,581],{},[97,2818,584],{},[97,2820,587],{},[117,2822,590],{"class":412},[117,2824,593],{"class":134},[117,2826,352],{"class":412},[117,2828,2829],{"class":412},[139,2830,2831,2833],{"class":141,"popper-class":142,"theme":112},[117,2832,602],{},[147,2834,2835],{"v-slot:popper":149},[117,2836,2837,2861],{"class":152,"v-pre":113},[97,2838,2839,2841,2843,2845,2847,2849,2851,2853,2855,2857,2859],{"class":155},[117,2840,611],{"style":238},[117,2842,248],{"style":158},[117,2844,616],{"style":238},[117,2846,254],{"style":158},[117,2848,622],{"style":621},[117,2850,625],{"style":158},[117,2852,628],{"style":621},[117,2854,625],{"style":158},[117,2856,633],{"style":621},[117,2858,625],{"style":158},[117,2860,492],{"style":161},[267,2862,2863],{"class":269},[88,2864,642,2865,646,2867,279,2869,279,2871,656,2873,660,2875,389],{},[97,2866,645],{},[97,2868,649],{},[97,2870,652],{},[97,2872,655],{},[97,2874,659],{},[97,2876,663],{},[117,2878,590],{"class":412},[117,2880,645],{"class":134},[117,2882,923],{"class":412},[117,2884,2885],{"class":123},"\u002F\u002F \"3,317.00\"\n",[102,2887,2889],{"id":2888},"inverse-rate","Inverse Rate",[88,2891,2892],{},"The reverse rate is a repeating decimal — control how many places you keep:",[107,2894,2896],{"className":109,"code":2895,"language":111,"meta":112,"style":113},"import { rawDiv } from '@wzo\u002Fcalc'\n\u002F\u002F ---cut---\n\u002F\u002F USD→CNY is 7.2345, so CNY→USD = 1 \u002F 7.2345\nrawDiv('1', '7.2345', 6) \u002F\u002F \"0.138227\"\n",[97,2897,2898,2903],{"__ignoreMap":113},[117,2899,2900],{"class":119,"line":120},[117,2901,2902],{"class":123},"\u002F\u002F USD→CNY is 7.2345, so CNY→USD = 1 \u002F 7.2345\n",[117,2904,2905,3029,3031,3034,3036,3039,3041,3044,3046],{"class":119,"line":127},[117,2906,2907],{"class":215},[139,2908,2909,2912],{"class":141,"popper-class":142,"theme":112},[117,2910,2911],{},"rawDiv",[147,2913,2914],{"v-slot:popper":149},[117,2915,2916,2961,2974],{"class":152,"v-pre":113},[97,2917,2918],{"class":155},[107,2919,2920],{"class":229,"style":230,"tabindex":231},[97,2921,2922,2954],{},[117,2923,2924,2926,2928,2931,2933,2935,2937,2940,2942,2944,2946,2949,2951],{"class":119},[117,2925,239],{"style":238},[117,2927,2911],{"style":242},[117,2929,2930],{"style":238},"(a: string ",[117,2932,254],{"style":158},[117,2934,532],{"style":238},[117,2936,254],{"style":158},[117,2938,2939],{"style":238}," bigint, b: string ",[117,2941,254],{"style":158},[117,2943,532],{"style":238},[117,2945,254],{"style":158},[117,2947,2948],{"style":238}," bigint, precision",[117,2950,248],{"style":158},[117,2952,2953],{"style":238}," number): string",[117,2955,2956,2958],{"class":119},[117,2957,262],{"style":158},[117,2959,2960],{"style":238}," rawDiv",[267,2962,2963],{"class":269},[88,2964,2965,2966,2969,2970,2973],{},"High-precision division ",[97,2967,2968],{},"a \u002F b",", result rounded to ",[97,2971,2972],{},"precision"," decimal places (half-up).",[267,2975,2976,2986,2996,3008,3015,3022],{"class":334},[117,2977,2978,2980],{"class":337},[117,2979,341],{"class":340},[117,2981,2982,2985],{"class":344},[97,2983,2984],{},"a","  Dividend",[117,2987,2988,2990],{"class":337},[117,2989,341],{"class":340},[117,2991,2992,2995],{"class":344},[97,2993,2994],{},"b","  Divisor",[117,2997,2998,3000],{"class":337},[117,2999,341],{"class":340},[117,3001,3002,3004,3005],{"class":344},[97,3003,2972],{},"  Maximum decimal places to retain, defaults to ",[97,3006,3007],{},"50",[117,3009,3010,3012],{"class":337},[117,3011,370],{"class":340},[117,3013,3014],{"class":344},"Canonical string of the quotient",[117,3016,3017,3019],{"class":337},[117,3018,394],{"class":340},[117,3020,3021],{"class":344},"When the divisor is zero",[117,3023,3024,3026],{"class":337},[117,3025,402],{"class":340},[117,3027,3028],{"class":344},"div('1', '3')      \u002F\u002F '0.333...' (up to 50 places)\ndiv('1', '3', 4)   \u002F\u002F '0.3333'",[117,3030,413],{"class":412},[117,3032,3033],{"class":416},"'1'",[117,3035,352],{"class":412},[117,3037,3038],{"class":416},"'7.2345'",[117,3040,352],{"class":412},[117,3042,3043],{"class":134},"6",[117,3045,2316],{"class":412},[117,3047,3048],{"class":123},"\u002F\u002F \"0.138227\"\n",[3050,3051,3053],"callout",{"type":3052},"warning",[88,3054,3055,3056,1832,3058,3060,3061,3064,3065,3067,3068,1726],{},"Always pass rates and amounts as ",[92,3057,94],{},[97,3059,3038],{},", not ",[97,3062,3063],{},"7.2345"," after arithmetic). A rate written as a ",[97,3066,380],{}," literal is fine, but a rate produced by an earlier floating-point calculation is already corrupted before it reaches the library — see ",[2984,3069,23],{"href":24},[3071,3072,3073],"style",{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":113,"searchDepth":127,"depth":127,"links":3075},[3076,3077,3078,3079,3080],{"id":104,"depth":127,"text":105},{"id":728,"depth":127,"text":729},{"id":929,"depth":127,"text":930},{"id":1224,"depth":127,"text":1225},{"id":2888,"depth":127,"text":2889},"Exchange-rate math — conversions, cross-rates, multi-currency totals — without floating-point drift.","md",{"icon":3084},"i-lucide-arrow-left-right",{"title":75,"description":3081},"uCYZcDtqpT_xludbG9rNofrUNvjhYXmcqOX4hOI696M",[3088,3090],{"title":71,"path":72,"stem":73,"description":3089,"children":-1},"Real compound expressions — multi-item discounts, threshold discounts, tax rates, commissions, compound interest — evaluated precisely throughout.",null,1783414279233]