示例#1
0
 /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
 public void AsNumber(Kirikiri.Tjs2.Variant targ)
 {
     if (mObject == null)
     {
         targ.Set(0);
     }
     else
     {
         if (mObject is Number)
         {
             // Integer or Double
             if (mObject is int)
             {
                 targ.Set(((int)mObject));
             }
             else
             {
                 targ.Set(((Number)mObject));
             }
         }
         else
         {
             if (mObject is string)
             {
                 LexBase lex = new LexBase((string)mObject);
                 Number num = lex.ParseNumber();
                 if (num != null)
                 {
                     if (num.IsInt())
                     {
                         targ.Set(((int)num));
                     }
                     else
                     {
                         targ.Set(((Number)num));
                     }
                 }
                 else
                 {
                     targ.Set(0);
                 }
             }
             else
             {
                 // convert error
                 ThrowVariantConvertError(this, TYPE_INTEGER, TYPE_REAL);
             }
         }
     }
 }