You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何这段Pine Script代码中str.format与str.tostring显示数值不同?

Pine Script v5中str.format与str.tostring输出数值差异的原因

这是两个函数的数值显示规则差异导致的:

  • str.tostring()会直接输出数值的底层完整精度,Pine Script里的价格数据(比如high)本身存储时带有较多小数位(可能是8位甚至更多),该函数不会做任何截断或四舍五入,连浮点数存储的微小精度误差也会一并展示。
  • str.format("{0,number}")是按人类易读的格式化规则输出,默认会根据图表的价格精度设置对数值进行四舍五入,保留较少的小数位,同时自动忽略浮点数存储的微小误差,输出更简洁的结果。

举个实际场景的例子:假设high的实际存储值是245.67890123

  • str.tostring(high)会输出245.67890123
  • str.format("{0,number}", high)可能输出245.68或245.6789(取决于当前图表的小数位配置)

如果需要让两者输出一致,可以给str.format()指定精确的小数位数,比如:

str.format("{0,number,#.########}", high)

这样就能强制保留8位小数,和str.tostring()的输出精度对齐。

内容的提问来源于stack exchange,提问作者Micke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:42:20