{"version":3,"file":"number.mjs","sources":["../../../packages/utils/number.ts"],"sourcesContent":["function int(numbers: number[]) {\n  const numberStrings = numbers.map(n => String(n))\n  const numStringsLen = numberStrings.map(ns => ns.split('.')[1]?.length ?? 0)\n\n  const factor = Math.pow(10, Math.max(...numStringsLen))\n\n  return {\n    /** 整数 */\n    ints: numbers.map(n => Math.round(n * factor)),\n    /** 让所有数值成为整数的最小系数 */\n    factor\n  }\n}\nexport function plus(...numbers: number[]) {\n  let i = 0\n  let result = 0\n  const { ints, factor } = int(numbers)\n  while (i < ints.length) {\n    result += ints[i]!\n    i++\n  }\n  return result / factor\n}\n\n/**\n * 依次相减\n * @param numbers 数字\n * @returns\n */\nexport function minus(...numbers: number[]) {\n  let i = 0\n  let { ints, factor } = int(numbers)\n\n  let result = ints[0]!\n  ints = ints.slice(1)\n  while (i < ints.length) {\n    result -= ints[i]!\n    i++\n  }\n  return result / factor\n}\n\n/**\n * 两数相乘\n * @param num1 数字1\n * @param num2 数字2\n * @returns\n */\nexport function mul(num1: number, num2: number) {\n  let {\n    ints: [int1, int2],\n    factor\n  } = int([num1, num2])\n  let result = int1! * int2!\n\n  return result / (factor * factor)\n}\n\n/**\n * 两数相除\n * @param num1 数字1\n * @param num2 数字2\n * @returns\n */\nexport function divide(num1: number, num2: number) {\n  const { ints } = int([num1, num2])\n  return ints[0]! / ints[1]!\n}\n"],"names":[],"mappings":"AAAA,SAAS,IAAI,OAAmB,EAAA;AAC9B,EAAA,MAAM,gBAAgB,OAAQ,CAAA,GAAA,CAAI,CAAK,CAAA,KAAA,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AAChD,EAAM,MAAA,aAAA,GAAgB,aAAc,CAAA,GAAA,CAAI,CAAG,EAAA,KAAA;AAF7C,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAEgD,IAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAA,CAAG,MAAM,GAAG,CAAA,CAAE,CAAC,CAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,WAAlB,IAA4B,GAAA,EAAA,GAAA,CAAA,CAAA;AAAA,GAAC,CAAA,CAAA;AAE3E,EAAM,MAAA,MAAA,GAAS,KAAK,GAAI,CAAA,EAAA,EAAI,KAAK,GAAI,CAAA,GAAG,aAAa,CAAC,CAAA,CAAA;AAEtD,EAAO,OAAA;AAAA;AAAA,IAEL,IAAA,EAAM,QAAQ,GAAI,CAAA,CAAA,CAAA,KAAK,KAAK,KAAM,CAAA,CAAA,GAAI,MAAM,CAAC,CAAA;AAAA;AAAA,IAE7C,MAAA;AAAA,GACF,CAAA;AACF,CAAA;AACO,SAAS,QAAQ,OAAmB,EAAA;AACzC,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AACR,EAAA,IAAI,MAAS,GAAA,CAAA,CAAA;AACb,EAAA,MAAM,EAAE,IAAA,EAAM,MAAO,EAAA,GAAI,IAAI,OAAO,CAAA,CAAA;AACpC,EAAO,OAAA,CAAA,GAAI,KAAK,MAAQ,EAAA;AACtB,IAAA,MAAA,IAAU,KAAK,CAAC,CAAA,CAAA;AAChB,IAAA,CAAA,EAAA,CAAA;AAAA,GACF;AACA,EAAA,OAAO,MAAS,GAAA,MAAA,CAAA;AAClB,CAAA;AAOO,SAAS,SAAS,OAAmB,EAAA;AAC1C,EAAA,IAAI,CAAI,GAAA,CAAA,CAAA;AACR,EAAA,IAAI,EAAE,IAAA,EAAM,MAAO,EAAA,GAAI,IAAI,OAAO,CAAA,CAAA;AAElC,EAAI,IAAA,MAAA,GAAS,KAAK,CAAC,CAAA,CAAA;AACnB,EAAO,IAAA,GAAA,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA;AACnB,EAAO,OAAA,CAAA,GAAI,KAAK,MAAQ,EAAA;AACtB,IAAA,MAAA,IAAU,KAAK,CAAC,CAAA,CAAA;AAChB,IAAA,CAAA,EAAA,CAAA;AAAA,GACF;AACA,EAAA,OAAO,MAAS,GAAA,MAAA,CAAA;AAClB,CAAA;AAQgB,SAAA,GAAA,CAAI,MAAc,IAAc,EAAA;AAC9C,EAAI,IAAA;AAAA,IACF,IAAA,EAAM,CAAC,IAAA,EAAM,IAAI,CAAA;AAAA,IACjB,MAAA;AAAA,GACE,GAAA,GAAA,CAAI,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AACpB,EAAA,IAAI,SAAS,IAAQ,GAAA,IAAA,CAAA;AAErB,EAAA,OAAO,UAAU,MAAS,GAAA,MAAA,CAAA,CAAA;AAC5B,CAAA;AAQgB,SAAA,MAAA,CAAO,MAAc,IAAc,EAAA;AACjD,EAAA,MAAM,EAAE,IAAK,EAAA,GAAI,IAAI,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AACjC,EAAA,OAAO,IAAK,CAAA,CAAC,CAAK,GAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAC1B;;;;"}