字符串是不使用Execute()的数字

时间:2014-06-05 14:42:24

标签: string numbers maxscript

str = "92349"       
n = str as integer
if (n != undefined) then ...

不使用Execute(),在MAXScript中有更好的方法来确定字符串是否代表数字(或者不是)?

3 个答案:

答案 0 :(得分:2)

你也可以在最大范围内尝试dotnet:

local pstring = "12"
local res = false
local parseRes = (dotnetclass "System.Int32").TryParse pstring &res

if parseRes do 
(
    print res
)

http://msdn.microsoft.com/en-us/library/f02979c7.aspx

答案 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