分数计算器
转换所有处理都在浏览器本地完成,数据不上传服务器
输入
把文件拖到这里可直接载入
输出
四种输入自动识别,不需要先选模式:`24/36` 是约分、`24 36` 是两个整数求公约数与公倍数、`0.75` 是小数转分数、`1/2 + 1/3` 是分数运算。这几件事看着简单,但两个地方容易出错:最小公倍数长得非常快(连续几个十位数的公倍数就超出 2^53),用普通数字会在不报错的情况下丢低位;而分数运算里分母相乘同样很容易越过安全整数范围。所以这里全程用 BigInt,任意大的整数都精确。小数转分数是精确转换 —— 0.1 就是 1/10,不是「近似成 1/10」。
功能
- 分数约分,并给出用到的最大公约数
- 两个整数求最大公约数与最小公倍数,并判断是否互质
- 小数转分数:十进制小数是精确转换,不是近似
- 分数四则运算(加减乘除),结果自动约分
- 假分数同时给出带分数形式
- 小数与分数的互转给出 12 位小数值
- 可选连分数近似:π 会收敛到 355/113 这样的简单分数
- 全程 BigInt,超大整数不丢低位
使用方法
- 把分数、两个整数、小数或算式粘进输入框 —— 类型会自动识别
- 结果实时出现
- 需要近似分数时打开连分数选项
- 点某一行的复制按钮取走结果
常见问题
- 为什么最小公倍数要用 BigInt?
- 因为它长得非常快:21 与 6 的最小公倍数是 42,但相邻两个十位数的最小公倍数就是 20 位了 —— 超过 2^53 之后,JavaScript 的普通数字会在不报错的情况下丢掉低位,你拿到一个看起来正常、其实错了的数字。求公约数与公倍数的题目恰好常出现在这类大数上。
- 0.1 转成分数是精确的吗?
- 在这个工具里是。十进制小数转分数是精确定义的操作:0.1 就是 1/10,因为 0.1 这个写法本身就表示十分之一。(顺带一提,0.1 在二进制浮点里是无限循环小数 —— 那是另一回事,这里从字符串解析,不经过浮点。)
- 连分数近似是什么?
- 一种把任意实数逼近成简单分数的方法,而且每一步给出的都是「分母不超过某个数的所有分数里最接近的那个」。所以 π 会依次逼近成 3、22/7、333/106、355/113 —— 355/113 精确到小数点后 6 位,而分母只有三位数。做工程估算时很好用。
- 支持负数与带分数输入吗?
- 支持负数:`-24/36`、`1/-2` 都认,结果会统一成一个写法(分母的负号搬到分子上)。带分数(如 `2 1/3`)目前需要先化成假分数 `7/3` 再输入 —— 因为「两个整数」那种写法已经被公约数占用了,两者无法区分。
相关工具
进制转换
转换在二、八、十、十六、36、64 进制之间互转,六种结果一次全部给出,19 位的雪花 ID 也能一位不差。全部在浏览器本地完成。
单位换算
转换在长度、重量、温度、能量、压力、流量、力、密度等 26 类单位之间换算,输入一个值就能看到同类全部单位下的结果,全部在浏览器本地完成。
数字转大写
转换把数字转成人民币大写金额与中文读法:壹万贰仟叁佰肆拾伍元陆角柒分。零的读法、「壹拾」与「整」都按财务规范处理,全部在浏览器本地完成。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。
Cron 解析
转换把 cron 表达式逐字段讲成人话,算出接下来几次与上一次的执行时间;永远不会触发的表达式会当场说明原因。全部在浏览器本地解析。