星座运势查询:指数怎么读?5分制与100分制的区别与展示建议
# 星座运势查询:指数怎么读?5分制与100分制的区别与展示建议
> 接入点 872-1 · 免费 · JSON · 适用:前端、数据展示工程师 · 阅读时间:约 6 分钟
## TL;DR
- 日/明日/周/月四个周期的指数均为**最高 5 分**(summary/love/money/work_star)。
- 年(year)维度改用**最高 100 分**(`general_index/love_index/money_index/work_index`)。
- 字段类型文档内部不一致(`day.summary_star` 标 String、其余标 Number),代码按「可比较数值字符串」处理最稳。
## Why:为什么指数口径不统一是个坑
如果前端统一把指数当「满分 5 的星级」渲染,年维度的 `general_index=78` 会被误当成「78 分(爆表)」或「78/5」。反之若按 100 分渲染日维度,4 分会显得极低。理解两套量纲并分别映射,是做对展示的前提。
## What:两套量纲对照
| 周期 | 指数字段 | 满分 | 示例 |
|------|----------|------|------|
| day / tomorrow / week / month | `summary_star`、`love_star`、`money_star`、`work_star` | 5 | 4、3 |
| year | `general_index`、`love_index`、`money_index`、`work_index` | 100 | 78、82 |
> 文档原文:日/周/月「最高 5 分」,年「最高 100 分」。
## How:展示层映射建议
```js
function renderStar(v, isYear) {
const max = isYear ? 100 : 5;
// 统一转成 5 颗星展示
const stars = Math.round((Number(v) / max) * 5);
return "★".repeat(stars) + "☆".repeat(5 - stars);
}
// 日维度:renderStar(body.day[0].summary_star, false)
// 年维度:renderStar(body.year[0].general_index, true)
```
## 返回示例(结构示意)
```json
{
"showapi_res_body": {
"day": [{ "summary_star": "4", "love_star": 3 }],
"year": [{ "general_index": "78", "love_index": "82" }]
}
}
```
## 进阶 / 边界
- **类型以实际为准**:文档对 `summary_star` 在 day 标 String("4")、在 tomorrow/week/month 标 Number(4),属于文档内部不一致。不要做 `typeof === 'number'` 强断言,统一 `Number()` 转换更稳妥。
- **年维度无小维度**:year 只有 4 个 `*_index`,没有爱情/工作等细分小星,UI 上不要硬套日维度模板。
- **不要跨周期比大小**:5 分制与 100 分制量纲不同,仅同周期、同维度可比。
## FAQ
**Q:为什么年是 100 分、日是 5 分?**
A:这是接口设计的两种口径,文档分别写明「最高 5 分」与「最高 100 分」。展示时需分别归一化,不可混用。
**Q:summary_star 到底是字符串还是数字?**
A:文档标注不一致,实测以返回值为准。代码统一用 `Number()` 转换即可兼容两种形态。
**Q:能把 5 分制直接乘以 20 变成百分制吗?**
A:技术上可以换算展示,但语义不同(日维度是「单日细分」,年维度是「年度趋势」),建议分别展示而非强行统一。
## 下一步阅读
- [星座运势查询返回字段全解](https://www.showapi.com/guides/horoscope-response-fields-872)
- [星座运势查询:一次取齐多周期运势](https://www.showapi.com/guides/horoscope-multi-period-872)
- [免费接口也有限流:星座运势查询缓存策略](https://www.showapi.com/guides/horoscope-cache-872)
- **本系列共 13 篇**:查看[星座运势 API 开发指南总目录](https://www.showapi.com/guides/horoscope-guides-872)