如何在 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
假设我有以下代码:
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