@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
11 lines • 1.96 kB
JavaScript
/**
* Calculates sum of any number of passed arguments with proper floating point precision
*/
export function tuiSum(...args) {
const decimal = args.map((double) => (double.toString().split('.')[1] ?? '').length);
const maxDecimal = Math.max(0, ...decimal);
const precision = 10 ** maxDecimal;
const sumInt = args.reduce((acc, n) => acc + Math.round(n * precision), 0);
return sumInt / precision;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21hdGgvc3VtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUFHLElBQWM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsRUFBRSxJQUFJLFVBQVUsQ0FBQztJQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNFLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYWxjdWxhdGVzIHN1bSBvZiBhbnkgbnVtYmVyIG9mIHBhc3NlZCBhcmd1bWVudHMgd2l0aCBwcm9wZXIgZmxvYXRpbmcgcG9pbnQgcHJlY2lzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0dWlTdW0oLi4uYXJnczogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGNvbnN0IGRlY2ltYWwgPSBhcmdzLm1hcCgoZG91YmxlKSA9PiAoZG91YmxlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVsxXSA/PyAnJykubGVuZ3RoKTtcbiAgICBjb25zdCBtYXhEZWNpbWFsID0gTWF0aC5tYXgoMCwgLi4uZGVjaW1hbCk7XG4gICAgY29uc3QgcHJlY2lzaW9uID0gMTAgKiogbWF4RGVjaW1hbDtcbiAgICBjb25zdCBzdW1JbnQgPSBhcmdzLnJlZHVjZSgoYWNjLCBuKSA9PiBhY2MgKyBNYXRoLnJvdW5kKG4gKiBwcmVjaXNpb24pLCAwKTtcblxuICAgIHJldHVybiBzdW1JbnQgLyBwcmVjaXNpb247XG59XG4iXX0=