# Awlm2026472

> 用 fraction.js 做份额/股权比例精算。当用户要分数运算、股权比例、fraction.js 时使用。轻量接入：new Fraction + add/div；输出约分后的比与百分比；不做完整股权系统。

- Skill: `cslawyer1985/awlm2026472` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/awlm2026472`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/awlm2026472/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/awlm2026472

---


# 股权份额精算

灵感：能力工具箱 `fraction-js`（fraction.js 做份额/股权比例精算）。

> 小四原创：份数 → `Fraction` → 约分占比。  
> 避免 `0.1+0.2` 式浮点比例误差。

## 何时使用

- 合伙人份额占比
- 按份数分摊金额
- Demo 股权比例展示

## 硬约束

1. 依赖：`fraction.js`。
2. 入参用整数份数或可解析分数串。
3. 实现要点注释标 **小四原创**。
4. 不做完整股权登记/协议生成。

## 推荐实现

```ts
import Fraction from 'fraction.js'

// 小四原创：股权份额精算
export function shareRatio(parts: number[]): { labels: string[]; pct: string[] } {
  const total = parts.reduce((a, b) => a + b, 0)
  if (!total) return { labels: [], pct: [] }
  const labels = parts.map((p) => new Fraction(p, total).toFraction(true))
  const pct = parts.map((p) =>
    new Fraction(p, total).mul(100).valueOf().toFixed(2) + '%'
  )
  return { labels, pct }
}

export function splitByShares(amount: string, parts: number[]): string[] {
  const total = parts.reduce((a, b) => a + b, 0)
  if (!total) return parts.map(() => '0')
  return parts.map((p) =>
    new Fraction(amount).mul(p).div(total).valueOf().toFixed(2)
  )
}
```

## Agent 步骤

1. `npm i fraction.js`。
2. 输入各方份数；展示 `toFraction` 与百分比。
3. 自测：`[1,1,2]` 得 `1/4,1/4,1/2`。

## 不要做

- 用浮点直接除算出比例当最终结果。
- 做成完整股权台账。

## 附加

- [README.md](README.md) · [reference.md](reference.md) · [templates/usage.md](templates/usage.md)

