使用方法
- 在「每股年度现金分红」填公司最近一期已派发的年度现金分红总额(不是单次派息)。默认示例是 0.68 元/股,A 股常见量级。
- 在「当前股价」填现价,默认示例 27.50 元。股息率对股价非常敏感,股价翻倍结果直接减半。
- 「实际持有天数」可选,用于按天数口径年化。默认 184 天;填 0 表示不启用这一项,只看静态股息率。
- 「每笔投入本金」默认 10000 元,用来算能买多少股(按 100 股整手向下取整)与整手持仓一年能拿多少现金股息。
- 点「计算股息率」或直接按 Enter。结果区 8 格依次给出静态股息率、倒数、股数、年派息、两种年化口径及其差值、20% 税后股息率。
这个股息收益率计算器能解决什么
判断一只高股息标的的现金回报到底处于什么水平。股息率是「已承诺的现金分红」除以「当前买入价」,它回答的是「按现在这个价买入,每年能拿回多少比例的现金」,与股价之后涨跌无关。
横向比较不同价位下的同一只标的。分红金额一年才定一次或几次,股价每天变,所以同一家公司在 20 元和 40 元时对应的股息率相差一倍——只比「分红金额」没有意义,必须除以当时股价。
核对分红率与盈利收益率是否被混用。股息率用「实际派现」做分子,盈利收益率(1/PE)用「会计利润」做分子。假设每股收益 1.10 元、每股分红 0.68 元,分红率是 61.82%;若股价 27.50 元,股息率 2.47%,而按 PE=40 算的盈利收益率是 2.50%,两者接近但不相等。
换算持仓视角的现金到手金额。同样是 2.47% 的股息率,1 万元和 100 万元本金对应的绝对金额差 100 倍,后者才有讨论「股息能不能覆盖生活支出」的意义。股息收益率计算器把这层换算放进同一屏,避免拿到一个百分比还要另外心算持仓量。
本页不预测股价,也不判断分红能否持续——「今年派了」不等于「明年还派」,那是公司基本面问题。想算含股价涨跌的综合回报,请用投资回报率计算器;想处理整笔资金的利息与本金变化,用储蓄利息计算器。
原理与规则说明
核心公式就一个除法:d / p * 100,d 是每股年度现金分红,p 是当前股价。这个式子来自股息率的定义,分子是「已经实际派发到股东手里的现金」,分母是「今天买一股要花的钱」。页面里八格里有五格都是它的直接变形:倒数 p / d、占比、百分比、两种年化口径、扣税后股息率。
为什么默认保留两位小数而不是更多:0.68 / 27.50 * 100 在 IEEE 754 双精度下的实际值是 2.472727272727273,toFixed(2) 得 2.47%。再多给位数是在展示浮点噪声,不是在提高准确度——分母的有效数字只有输入那几个。股息率低于 0.005% 时(示例:分红 0.68 元、股价 100000 元,真实值 0.00068%)会自动切到六位小数,因为按两位四舍五入会直接显示成 0.00%;这个阈值取的是末位有效数字的一半(0.01 ÷ 2),低于它就必然被舍没。
两种年化口径为什么要分开给。静态股息率 d / p 的隐含前提是「这个分红水平代表一整年」。当你的实际持有期不足一年时,把已拿到的分红按持有天数折算成年化更贴近真实:d / p * 365 / 持有天数 * 100。更关键的是「一年」按多少天算:默认示例持有 184 天,按 365 天基准年化得 4.9051%,按银行与部分理财产品常用的 360 天基准得 4.8379%,两者相差 0.0672 个百分点。持有 361 天时差 0.0342 个百分点,闰年基准 366 天时差 0.0405 个百分点。持有期越短、两个基准差得越多,所以短期持有时不能直接拿静态股息率和一年期定存比。
整手取整用的是向下取整而不是四舍五入。10000 元 ÷ 27.50 = 363.64 股,A 股最小交易单位是 100 股(1 手),所以实际能买 300 股、占用 8250 元,年派息 300 × 0.68 = 204 元。若不取整按 363.64 股算则是 247.27 元,差了 43.27 元——这不是精度问题,是一手门槛造成的实际差异,所以本页把它单列一格。
税后口径按财政部与税务总局财税〔2015〕101 号的差别化政策给一档示例:持股不超过 1 个月税率 20%,1 个月至 1 年 10%,超过 1 年免征。默认示例 0.68 元分红、27.50 元股价下,三档税后股息率依次是 1.98%、2.23%、2.47%。请注意该文件的适用范围有前提条件(限股售流通股以外的上市公司股票),本页只把它当口径说明,不构成税务建议。
完整示例(数值仅作演示)
用默认的四个输入:每股分红 0.68 元、股价 27.50 元、持有 184 天、本金 10000 元。八格结果依次是:
- 静态股息率 2.47%(原始值 2.472727272727273%)
- 股息率倒数 40.44 年。含义是:不分红、不考虑股价涨跌,纯靠现金派息回本需要 40.44 年。这个数越大,「靠股息吃饭」越不现实。
- 每万元可买股数 363.64 股,整手取整后 300 股
- 整手持仓年派息 204.00 元(300 × 0.68)
- 按 365 天基准 + 持有 184 天年化 4.9051%(0.68 ÷ 27.50 × 365 ÷ 184 × 100)
- 按 360 天基准(银行惯例)年化 4.8379%(同一式子把 365 换成 360)
- 两口径之差 0.0672 个百分点——持有期越短,这个差越大
- 扣 20% 税后股息率 1.98%(0.68 × 0.8 ÷ 27.50 × 100 = 1.9782%)
把持有天数改成 90 天再看:按 365 天基准年化变为 0.68 ÷ 27.50 × 365 ÷ 90 × 100 = 10.0283%,按 360 天基准是 9.8909%,两口径差扩大到 0.1374 个百分点。同一笔分红、同一段行情,仅仅因为统计区间不同,年化数字就差了一倍——这就是为什么短期收益率必须标明区间和天数基准。
换成对照表第 7 行:分红 0.90 元、股价 9.15 元,股息率 9.84%,倒数 10.17 年。这类高股息率通常出现在周期高点或股价大幅下跌之后,不代表可持续。
输入范围与对照表
| 输入项 | 允许范围 | 默认值 | 作用与限制 |
|---|---|---|---|
| 每股年度现金分红 | 0 ~ 100000 元 | 0.68 | 填 0 合法,表示当期未分红,结果为 0.00% |
| 当前股价 | 0.01 ~ 1000000 元 | 27.50 | 不能为 0,除法无定义 |
| 实际持有天数 | 0 ~ 36500 天 | 184 | 填 0 表示不启用年化对比 |
| 每笔投入本金 | 0 ~ 10 亿元 | 10000 | 仅用于股数与年派息测算,不影响股息率 |
换算方式:分红与股价直接按元填,不需要带千分位逗号;天数按自然日填,不区分工作日。全部走 type="number" 控件,step="0.0001" 允许 0.68 这类小数股息。若浏览器把 1,200 当成输入,控件会读成空值并给出提示而不是算出 0。
上方对照表默认渲染 12 行,全部 12 组都已在脚本中复算过;点「加载更多」每次加 12 行,「导出 CSV」带 UTF-8 BOM,Excel 打开中文不乱码。
输入范围、边界与精度说明
三个容易算错但不会报错的地方,都必须提前拦下来:股价为 0 会让除法返回 Infinity;股价填 0.01 元、分红 0.68 元会得到 6800% 的股息率,这不是公式错了,但几乎一定是数据填错,所以页面会额外给一条橙色警告;分红填 0 会得到 0.00%,这是合法结果(未分红公司),和「漏填了」是两件事,页面不把它当错误。
精度层面,JavaScript 的安全整数上限是 9007199254740991(2^53−1),超过会丢整数精度;本页输入上限远低于此值,不涉及。真正的浮点误差来自二进制无法精确表示 0.68 和 27.50 这类十进制小数,0.1 + 0.2 实测得 0.30000000000000004,同样的尾数误差也让 0.68 / 27.50 * 100 变成 2.472727272727273 而不是精确的 2.47272727…。所有中间量全程保留 double,只在显示层用 toFixed,不做中途四舍五入——否则两处四舍五入叠加会产生新的偏差。
股息率与 PE 互为倒数关系的是「盈利收益率」而不是股息率。若每股收益 1.10 元、分红 0.68 元,分红率 0.68 / 1.10 = 61.82%;分红率超过 100% 意味着公司派发的钱超过当期利润,动用的是留存现金,这类标的的股息率尤其需要谨慎看待。
千分位用 new Intl.NumberFormat('zh-CN', { maximumFractionDigits: 2 }) 构造一次后复用,而不是每次调 toLocaleString()。区别在于:toLocaleString() 不传 locale 时跟随浏览器环境,中文环境与英文环境的分隔符不同,同一份数据在两台机器上可能显示成 12,480 和 12.480;把 locale 固定成 zh-CN 并缓存实例,结果就稳定了,60 行对照表也只构造一次。
常见误用一:把季度分红直接当年度分红填。某公司每季派 0.17 元、全年 0.68 元,填 0.17 会算出 0.62% 的股息率,恰好是正确值 2.47% 的四分之一,且没有任何报错提示。务必按「一年合计」填。
常见误用二:拿股息率和一年期定存直接比大小。股息率的分母是随时波动的股价,定存分母是锁定的本金;股价腰斩会让同一只股票的股息率翻倍,这不等于分红变多了。想比的话用年化收益率计算器统一到同一年化口径。这也是股息收益率计算器把两种天数基准并列输出的原因——不统一基准就无从比较。
常见误用三:把「倒数 40.44 年」当成回本周期。倒数假设股价长期不变、且每年都足额派息。现实中分红金额会调整、股价会变,它只是一个「当前静态假设下的量级参考」。
常见问题
股息率 2.47% 算高还是算低?
要看参照物。A 股宽基指数的长期股息率大致在 2% 上下波动,一年期定存与十年期国债的收益量级通常明显低于 2%。但个体差异极大:银行、公用事业、煤炭这类行业天然偏高,成长型行业可能长期接近 0。更重要的是股息率的分母天天在动,同一只股票从 2.47% 涨到 5% 只需要股价腰斩,与公司是否变好无关。
为什么按 365 天和按 360 天年化会差出 0.06 个百分点?
一年被当成 365 天还是 360 天,直接决定了折算的分母。默认示例持有 184 天,365 天口径得 4.9051%,360 天口径得 4.8379%,差 0.0672 个百分点。持有期越长差得越少:361 天时只差 0.0342 个百分点,闰年 366 天基准下差 0.0405 个百分点。持有不足一个月的场景下两种口径能差 0.2 个百分点以上,这时必须明确自己用哪个基准。
「倒数 40.44 年」是什么意思,可以当回本周期用吗?
它是股价除以每股分红,表示在股价不变、每年足额派息的前提下靠现金股息收回本金需要的年数。当倒数小于 15 年时,「靠分红覆盖生活成本」才开始具备可行性;超过 40 年说明这只股票的股息更接近一种零星补充。但它假设了股价不变这个现实中几乎不成立的条件,只能当量级参考。
分红为 0 为什么不算错误?
因为确实存在不分红的公司,这时的股息率就是 0.00%,是一个有效结果而不是计算失败。所以页面只在「股价为 0」「输入为空」「超出范围」这三种情况下报错。如果你的公司明明有分红却算出 0%,要检查是不是把股价填成了 0。
股价填得特别小导致股息率几千倍,是公式错了吗?
没有。股价 0.01 元、分红 0.68 元,公式给出的 6800% 在数学上完全正确。页面这种情况下会在结果区上方额外显示一条橙色提示,说明这个结果多半来自数据录入错误,而不是计算错误——但不会阻止你继续使用,因为退市整理期的股票确实可能出现极低股价。
税后股息率那格为什么只给 20% 一档?
因为 A 股股息红利个税按持股时间分三档:不超过 1 个月 20%、1 个月至 1 年 10%、超过 1 年免征(财税〔2015〕101 号,且该政策对持股主体与股份类型有前提条件)。页面给出 20% 档作为「最不利情形」的参考值,10% 档与免税档在正文的完整示例里已经列出。实际操作中的适用性与扣缴方式以券商与税务机关口径为准。
为什么每万元只能买 300 股而不是 363.64 股?
因为 A 股买入最小单位是 1 手 = 100 股,363.64 股向下取整就是 300 股,占用资金 8250 元。这个差额导致年派息是 204 元而不是 247.27 元,差 43.27 元,是交易门槛造成的实际差异而非计算误差。科创板与创业板虽然也是 100 股起,但卖出时可以不足 1 手,这个规则本页不涉及。
输入的数据会被上传吗?
不会。页面的除法与格式化全部由浏览器原生 Number 方法完成,模板里没有任何 fetch 或 XMLHttpRequest 调用。可以在开发者工具的 Network 面板自查,页面加载完成后除自身 CSS 外不会再发出任何请求,刷新即清空。
相关工具
股息收益率只回答「已派现除以买入价」,下面这些页面分别处理收益率的其他口径,资金用途不同,交叉核对能避免把不同定义混在一起比。