【问题标题】:Why is this calculation producing a wrong result?为什么这个计算会产生错误的结果?
【发布时间】:2020-08-01 11:26:43
【问题描述】:

请看下面的代码:

var test1=0.0
test1 := (100+((80/100)*6))

根据 Excel,答案是 104.8,但 Pine 告诉我答案是 100。这是为什么呢? 我尝试了其他一些计算,例如test1 := (100+1) + (100+2), which 在这种情况下产生正确的结果,即 203。

我已经阅读了这里的文档:https://www.tradingview.com/pine-script-docs/en/v4/index.html,我也用谷歌搜索过,但我仍然很困惑。

【问题讨论】:

    标签: pine-script


    【解决方案1】:

    我不知道为什么会出现这个问题,这可能是一个错误。正如您所看到的,它不是一个舍入问题,而是似乎在这里 pinescript 跳过了涉及除法和乘法的计算。

    解决方案是将计算中的被除数/除数或因子之一视为双精度数而不是整数,这可以使用尾随点来完成:

    var test1=0.0
    test1 := 100 + 80./100*6
    

    这将产生预期的结果。

    【讨论】:

    • 谢谢。这似乎确实有效。你什么时候使用:= over =。重新分配时使用吗?
    • 是的,:=是用来重新赋值的,主要是我们想用递归的时候用。
    • 在我投票之前 - 80 后的句号有什么作用?这里似乎很关键。
    • 你的意思是尾随点吗?在整数后添加一个点会将其视为双精度数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多