【问题标题】:Error: PRECISION expected input to be a number but got the list [-4] instead in NetLogo错误:PRECISION 期望输入是一个数字,但在 NetLogo 中得到了列表 [-4]
【发布时间】:2021-06-16 01:10:02
【问题描述】:

我试图将存储在补丁中的结果精确到小数点后 4 位。但是然后尝试得到这个错误: PRECISION 预期输入是一个数字,但得到了列表 [-4] 。我究竟做错了什么?提前致谢

turtles-own [ e x y my-home ]
patches-own [ my-agent, en ]

to test
ask turtles
  [
    set e (x - y)
    ask my-home
    [
      set en [ e ] of my-agent
      set en precision en 2
    ]
 
   die 
  ]
end

【问题讨论】:

  • 我无法重现该错误,但有一件事看起来很奇怪,那就是您使用 e.当您将其输入 netlogo 时,您会看到 e 以橙色突出显示,因为它是一个数学常数。您可能必须更改该名称

标签: netlogo


【解决方案1】:

我也无法重现该错误,但这有效:

turtles-own [ e_ ]
to setup 
  ca
  crt 1
  ask turtles
  [
    set e_ 0.123456789
  ]

end

to go
  ask turtles [
    set e_ (precision e_ 2)
  ]
end

;; now put the standard two buttons on the canvas

;; click "inspect turtle",
;; or type `e_` at the `turtle>` prompt of the command console.

正如用户 Lena 在她的评论中所说,属性 e不能被使用,因为名称与自然日志的 e 常量冲突。代码选项卡的“检查”功能抱怨e,但不会抱怨e_(或f,或e1...)。

【讨论】:

    【解决方案2】:

    显然,my-agent 已设置为一个代理集,而不是单个代理。在这种情况下,of 会生成一个列表而不是一个数字。

    【讨论】:

    • 史蒂夫 Railsback。确切地。那么,在这种情况下,我不能使用“精度”对吗?
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2022-12-12
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多