0.0.3 • Published 2 months ago
@small-monsters/calculator v0.0.3
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
- 向下取整