技术博客
科学计算器已知问题与使用避坑:subtraction / percentage 暂不可用、sqrt 单参数退化

科学计算器已知问题与使用避坑:subtraction / percentage 暂不可用、sqrt 单参数退化

作者: 万维易源
2026-09-03
科学计算器已知问题避坑
# 科学计算器已知问题与使用避坑:subtraction / percentage 暂不可用、sqrt 单参数退化 > 接口 免费科学计算器(apiCode 1699)· 接入点 科学计算器(1699-1)· 免费 · POST/GET · 返回 JSON · 适合 已接入 / 准备接入的开发者 · 阅读约 5 分钟 ## 核心要点 - ⚠️ **`subtraction`(减)与 `percentage`(百分比)实测均返回「方法调用出错」(ret -1),暂不可用**——但仍在官方操作名清单里,别踩坑。 - ⚠️ **`sqrt` 单参数会退化返回原值**(如 `sqrt(9)=9`),必须传 2 个参数 `sqrt(被开方数,根次数)`。 - ⚠️ **官方文档的返回示例是占位符**(把 `arccos(1)` 写成 124354),真实值为 `0`;以本文实测为准。 - 浮点结果带尾差(如 `sin(30°,ang)=0.49999…`),展示前按需四舍五入。 ## Why:这篇为什么值得先读 以上几个点,官方文档要么没写、要么写错。如果不提前知道,你会花时间怀疑「是不是我调错了」,甚至给客服提无效工单。把这些坑集中在这里,能帮你省下大量排查时间。本篇所有结论均来自**真实 API 调用实测**(2026-09-03,账户 AppKey),不是猜测。 ## What:接口速览 | 项目 | 说明 | |------|------| | 请求地址 | `https://route.showapi.com/1699-1?appKey={your_appKey}` | | 计费 | 免费,[使用档次限制](https://www.showapi.com/free-api) | | 本文结论来源 | 全部经真实请求实测验证 | ## How:三个实测确认的坑 ### 坑 1:`subtraction` / `percentage` 暂不可用 实测(多种参数格式)均返回 `ret_code: -1, remark: "方法调用出错"`: ```bash # subtraction 即使参数正确也报错 curl -s -X POST "https://route.showapi.com/1699-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "num=10,2&operation=subtraction&rad_or_ang=" # -> ret_code: -1, remark: "方法调用出错", result: null # percentage 同样报错 curl -s -X POST "https://route.showapi.com/1699-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "num=50,10&operation=percentage&rad_or_ang=" # -> ret_code: -1, remark: "方法调用出错" ``` **替代方案(未实测,供参考)**: - 减法:用 `add` 传负数,如 `num=10,-2&operation=add`;或 `product` 乘 `-1` 后相加。 - 百分比:自行用乘法/`product` 计算(如「200 的 10%」= `product(200,0.1)`)。 > 以上替代写法建议你本地实测确认后再用于生产。 ### 坑 2:`sqrt` 单参数退化 `sqrt(9)` 单参数返回 `9.0`(原值),**不是 3**。正确写法传 2 个参数: ```python import requests APP_KEY = "YOUR_APPKEY" def calc(num, op): r = requests.post("https://route.showapi.com/1699-1", params={"appKey": APP_KEY}, data={"num": num, "operation": op, "rad_or_ang": ""}, timeout=10) b = r.json()["showapi_res_body"] return b["result"] if str(b.get("ret_code")) == "0" else f"失败:{b.get('remark')}" print(calc("9", "sqrt")) # 9.0 ⚠️ 退化,非 3 print(calc("9,2", "sqrt")) # 3.0 ✅ 平方根 √9 ``` ### 坑 3:官方文档返回示例是占位符 官方页把 `arccos(1)` 的返回示例写成 `result: 124354`,但真实调用: ```bash curl -s -X POST "https://route.showapi.com/1699-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "num=1&operation=arccos&rad_or_ang=rad" # -> result: 0.0 (真实值,arccos(1)=0) ``` 请以本系列各篇的**实测返回值**为准,不要照搬文档示例。 ## 返回示例与解析 | 调用 | 真实结果 | 备注 | |------|---------|------| | `subtraction(10,2)` | `ret -1` 方法调用出错 | 暂不可用 | | `percentage(50,10)` | `ret -1` 方法调用出错 | 暂不可用 | | `sqrt(9)` | `9.0` | ⚠️ 退化 | | `sqrt(9,2)` | `3.0` | ✅ 正确 | | `arccos(1,rad)` | `0.0` | 文档示例 124354 为占位符 | ## 进阶 / 边界 - **浮点尾差**:三角函数等结果带尾差(如 `0.49999999999999994`),展示时 `toFixed` 处理。 - **操作名大小写**:必须全小写(如 `arccos`),否则报「operation不能为空或者不正确」。 - **错误排查**:失败时一定先看 `remark` 文案,对照[错误码排查](https://www.showapi.com/guides/calculator-error-codes-1699)。 ## FAQ **Q1:减法真的不能用吗?** 实测 `subtraction` 各种写法都返回「方法调用出错」,目前不可用。建议用 `add` 传负数替代,并自行实测确认。 **Q2:百分比怎么算?** `percentage` 暂不可用,自行用 `product`(如 200 的 10% = `product(200,0.1)`)实现。 **Q3:为什么 `sqrt(9)` 返回 9?** 单参数退化行为,必须传 2 个参数(被开方数,根次数)。这是文档未说明的坑。 **Q4:文档示例能信吗?** 返回示例是占位符,不能信。本系列各篇均使用真实实测值。 **Q5:这些坑后续会修吗?** 以官方更新为准;遇到异常欢迎在[接口页](https://www.showapi.com/apiGateway/view/1699)反馈。 ## 相关能力 / 下一步阅读 - [科学计算器操作名速查](https://www.showapi.com/guides/calculator-operations-reference-1699) —— 32 个操作名及可用状态 - [科学计算器幂与根用法](https://www.showapi.com/guides/calculator-power-root-1699) —— `sqrt` 正确写法 - [科学计算器错误码排查](https://www.showapi.com/guides/calculator-error-codes-1699) —— 失败文案对照 - **本系列共 11 篇**:查看[科学计算器开发指南总目录](https://www.showapi.com/guides/calculator-guides-1699)