Antd Progress组件进度文本精度设置问题求助
解决Ant Design Progress组件进度文本小数位过多的问题
问题根源在于JavaScript浮点数运算的精度误差,比如totalLearned / 200 * 100这类计算可能会得出7.000000000000001这类带冗余小数位的结果,即便设置了precision属性,组件也可能因为原始数值的精度问题显示异常。
直接手动处理计算结果的精度即可,以下是两种可行方案:
方案1:取整显示(保留0位小数)
用Math.round()对计算结果直接取整:
<Progress percent={Math.round(totalLearned / 200 * 100)} precision={0} strokeColor={{ '0%': '#dddd1b', '200%': '#52c41a', }} />
方案2:保留指定小数位(示例为1位)
用toFixed()格式化后转成数字再传入组件:
<Progress percent={Number((totalLearned / 200 * 100).toFixed(1))} precision={1} strokeColor={{ '0%': '#dddd1b', '200%': '#52c41a', }} />
处理后传入percent的数值精度符合预期,组件的进度文本就能正常显示了。
内容的提问来源于stack exchange,提问作者u4ii4y984484y203r
相关产品推荐
相关产品推荐

