如何在 Netlogo 中查找数字的长度?

How to find length of digits in a number in Netlogo?

假设我有以下代码:

let digits 10101010101

如何使用高效的 Netlogo 代码找到 位数 (=11) 的长度?内置长度函数仅适用于字符串和列表。我找不到将此数字转换为字符串的方法:似乎没有类似 read-from-string 的函数,但用于相反的用例。

您可以使用 word to get from whatever input to a string:

to-report digits-count [number]
  if (not is-number? number) [
    error "The input passed to 'digits-count' was not a number!"
  ]

  report length (word number)
end


; Then, in the Command Center:
observer> show digits-count 123438
observer: 6

请注意,如果数字可能包含非数字字符(例如小数分隔符、减号等),您还需要使用 remove:[=15= 删除这些字符]

to-report digits-count [number]
  if (not is-number? number) [
    error "The input passed to 'digits-count' was not a number!"
  ]
  
  let string (word number)
  set string (remove "." string)
  
  report length string
end

; Then, in the Command Center:
observer> show digits-count 234.45
observer: 5