0.0.3 • Published 2 months ago

@small-monsters/calculator v0.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

release

v0.0.3

  • fix: 字符数字计算错误

@smallmonster/calculator

用于处理 JavaScript 精确计算的工具库,解决浮点数计算精度问题。

特性

  • ✅ 解决 JavaScript 浮点数计算精度问题
  • ✅ 支持链式调用(如 add(1,2).add(3).div(2) 输出 3
  • ✅ 支持多参数(如 add(1,2,3,4)
  • ✅ 提供四舍五入、向上取整、向下取整功能,支持指定小数位
  • ✅ 完整的类型定义
  • ✅ 支持 CommonJS 和 ES Module 格式
  • ✅ 支持在浏览器中直接使用

安装

# 使用 npm
npm install @smallmonster/calculator

# 使用 yarn
yarn add @smallmonster/calculator

使用方法

基本使用

// ES Module
import {add, subtract, multiply, divide, round, ceil, floor} from 'packages/calculator';

// CommonJS
// const { add, subtract, multiply, divide, round, ceil, floor } = require('@my-monorepo/calculator');

// 加法:解决 0.1 + 0.2 !== 0.3 的问题
add(0.1, 0.2).valueOf(); // 0.3

// 支持多参数
add(1, 2, 3, 4).valueOf(); // 10

// 减法
subtract(0.3, 0.1).valueOf(); // 0.2

// 乘法
multiply(0.1, 0.2).valueOf(); // 0.02

// 除法
divide(0.3, 0.1).valueOf(); // 3

// 四舍五入(第二个参数指定小数位,默认为0)
round(1.234, 2); // 1.23
round(1.235, 2); // 1.24

// 向上取整
ceil(1.231, 2); // 1.24

// 向下取整
floor(1.239, 2); // 1.23

链式调用

import {calc} from 'packages/calculator';

// 链式调用示例
calc(1)
  .add(2, 3)
  .multiply(2)
  .subtract(1)
  .divide(3)
  .round(2)
  .valueOf(); // 3.33

calc()
  .subtract(1)
  .valueOf(); // -1
// 等于
calc(0).subtract(1).valueOf();

在浏览器中直接使用

<script src="node_modules/@smallmonster/calculator/dist/index.umd.js"></script>
<script>
  // 通过全局变量 precisionCalc 访问
  const { add, subtract, multiply, divide,PrecisionCalculator,calc } = precisionCalc;

  const result = add(0.1, 0.2).valueOf(); // 0.3
</script>

API 文档

核心函数

  • calc(...args: number[]): PrecisionCalculator - 创建一个新的计算器实例
  • add(...args: number[]): PrecisionCalculator - 执行加法运算
  • subtract(minuend: number, ...args: number[]): PrecisionCalculator - 执行减法运算
  • multiply(...args: number[]): PrecisionCalculator - 执行乘法运算
  • divide(dividend: number, ...args: number[]): PrecisionCalculator - 执行除法运算
  • round(value: number, decimalPlaces?: number): number - 四舍五入
  • ceil(value: number, decimalPlaces?: number): number - 向上取整
  • floor(value: number, decimalPlaces?: number): number - 向下取整

PrecisionCalculator 类

  • valueOf(): number - 获取计算结果
  • toString(): string - 获取计算结果的字符串表示
  • add(...args: number[]): PrecisionCalculator - 执行加法
  • subtract(...args: number[]): PrecisionCalculator - 执行减法
  • multiply(...args: number[]): PrecisionCalculator - 执行乘法
  • divide(...args: number[]): PrecisionCalculator - 执行除法
  • round(decimalPlaces?: number): PrecisionCalculator - 四舍五入
  • ceil(decimalPlaces?: number): PrecisionCalculator - 向上取整
  • floor(decimalPlaces?: number): PrecisionCalculator - 向下取整
0.0.3

2 months ago

0.0.2

2 months ago

0.0.1

2 months ago