股权份额精算
灵感:能力工具箱 fraction-js(fraction.js 做份额/股权比例精算)。
小四原创:份数 →
Fraction→ 约分占比。
避免0.1+0.2式浮点比例误差。
何时使用
- 合伙人份额占比
- 按份数分摊金额
- Demo 股权比例展示
硬约束
- 依赖:
fraction.js。 - 入参用整数份数或可解析分数串。
- 实现要点注释标 小四原创。
- 不做完整股权登记/协议生成。
推荐实现
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 步骤
npm i fraction.js。- 输入各方份数;展示
toFraction与百分比。 - 自测:
[1,1,2]得1/4,1/4,1/2。
不要做
- 用浮点直接除算出比例当最终结果。
- 做成完整股权台账。
附加
- README.md · reference.md · templates/usage.md