str = "92349"
n = str as integer
if (n != undefined) then ...
不使用Execute(),在MAXScript中有更好的方法来确定字符串是否代表数字(或者不是)?
答案 0 :(得分:2)
你也可以在最大范围内尝试dotnet:
local pstring = "12"
local res = false
local parseRes = (dotnetclass "System.Int32").TryParse pstring &res
if parseRes do
(
print res
)
答案 1 :(得分:0)
您的.net解决方案非常酷。但为什么要在一行中避免使用mxs简单方法
fn isInteger str = isKindOf (str as number) integer
答案 2 :(得分:0)
为了扩展已接受的答案,最好这样做,因为maxscript解释了各种数字类型,因为其中有一个字母。因此,以下所有内容都会产生一个数字:
" " as number --> 0
"." as number --> 0.0
"L" as number --> 0L
"P" as number --> 0P
"f" as number --> 0f
"m" as number --> 0f
"t" as number --> 0f
或其中的变体:
"ft" as number --> 0f
"fd0" as number --> 0f
"te0" as number --> 0f
"f00m" as number --> 0f
"m.f.t." as number --> 0f
etc.
大多数时候你会得到零 - 但并非总是如此,请注意这个序列(ASCII 185,178,179):
"¹" as number --> 137
"²" as number --> 130
"³" as number --> 131