/// <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; }
/// <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); } } } }
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; } } } } } } }
/// <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; }
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); } }