如何在Pine Script中检测数字是否可被完美整除?
Pine Script 完美整除检测实现方案
在Pine Script中可以直接使用内置取模运算符%实现完美整除检测,核心逻辑为:两个数取模的结果等于0时,即属于完美整除。
核心代码
isPerfectDivisible = (dividend % divisor) == 0
参数说明
dividend:被除数divisor:除数,必须提前判断不为0,否则会触发脚本运行错误
完整可运行示例
//@version=5 indicator("完美整除检测Demo", overlay=false) // 自定义输入参数 inputDividend = input.int(4, title="被除数", minval=1) inputDivisor = input.int(2, title="除数", minval=1) // 包含除数非0校验的完整判断逻辑 checkResult = inputDivisor != 0 and (inputDividend % inputDivisor) == 0 // 结果可视化输出 plotchar(checkResult, char="✅", color=color.new(color.green, 0), location=location.belowbar, size=size.small) plotchar(not checkResult, char="❌", color=color.new(color.red, 0), location=location.belowbar, size=size.small) // 结果表格展示 var table resultTable = table.new(position.top_left, 2, 3, border_width=1, bg_color=color.new(color.gray, 90)) table.cell(resultTable, 0, 0, "被除数", text_color=color.white) table.cell(resultTable, 1, 0, str.tostring(inputDividend), text_color=color.white) table.cell(resultTable, 0, 1, "除数", text_color=color.white) table.cell(resultTable, 1, 1, str.tostring(inputDivisor), text_color=color.white) table.cell(resultTable, 0, 2, "是否完美整除", text_color=color.white) table.cell(resultTable, 1, 2, checkResult ? "是" : "否", text_color=checkResult ? color.green : color.red)
注意事项
- 如果是浮点数的整除检测,建议先通过
math.round()、math.floor()等函数修正浮点精度误差后再做取模判断,避免运算精度问题导致结果异常 - 所有场景下都建议先做除数非0校验,避免脚本运行报错
内容的提问来源于stack exchange,提问作者rohan sawant
相关产品推荐
相关产品推荐

