Example #1
0
 /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
 public Number AsNumber()
 {
     if (mObject is int)
     {
         return new Number((int)mObject);
     }
     else
     {
         if (mObject is double)
         {
             return new Number((double)mObject);
         }
         else
         {
             if (mObject is string)
             {
                 LexBase lex = new LexBase((string)mObject);
                 Number num = lex.ParseNumber();
                 if (num != null)
                 {
                     return num;
                 }
                 else
                 {
                     return new Number(0);
                 }
             }
             else
             {
                 if (mObject == null)
                 {
                     return new Number(0);
                 }
             }
         }
     }
     // convert error
     ThrowVariantConvertError(this, TYPE_INTEGER, TYPE_REAL);
     return null;
 }
Example #2
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);
             }
         }
     }
 }
Example #3
0
 public bool AsBoolean()
 {
     if (mObject is int)
     {
         return ((int)mObject) == 0 ? false : true;
     }
     else
     {
         if (mObject is double)
         {
             return ((double)mObject) == 0.0 ? false : true;
         }
         else
         {
             if (mObject is string)
             {
                 LexBase lex = new LexBase((string)mObject);
                 Number num = lex.ParseNumber();
                 if (num != null)
                 {
                     return num == 0 ? false : true;
                 }
                 else
                 {
                     return false;
                 }
             }
             else
             {
                 if (mObject is VariantClosure)
                 {
                     VariantClosure v = (VariantClosure)mObject;
                     return (v.mObject != null);
                 }
                 else
                 {
                     if (mObject is ByteBuffer)
                     {
                         return true;
                     }
                     else
                     {
                         if (mObject == null)
                         {
                             return false;
                         }
                         else
                         {
                             return false;
                         }
                     }
                 }
             }
         }
     }
 }
Example #4
0
 /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
 public int AsInteger()
 {
     if (mObject is int)
     {
         return ((int)mObject);
     }
     else
     {
         if (mObject is double)
         {
             return (int)((double)mObject);
         }
         else
         {
             if (mObject is string)
             {
                 LexBase lex = new LexBase((string)mObject);
                 Number num = lex.ParseNumber();
                 if (num != null)
                 {
                     return num;
                 }
                 else
                 {
                     return 0;
                 }
             }
             else
             {
                 if (mObject == null)
                 {
                     return 0;
                 }
                 else
                 {
                     // bytebuffer or object
                     ThrowVariantConvertError(this, TYPE_INTEGER);
                 }
             }
         }
     }
     return 0;
 }
Example #5
0
 public static Number StringToNumber(string str)
 {
     LexBase lex = new LexBase(str);
     Number num = lex.ParseNumber();
     if (num != null)
     {
         return num;
     }
     else
     {
         return new Number(0);
     }
 }