Exemplo n.º 1
0
        Pchp.Core.Convert.NumberInfo IPhpConvertible.ToNumber(out PhpNumber number)
        {
            var temp = IsValid ? Socket.Handle.ToInt64() : 0;

            number = PhpNumber.Create(temp);
            return(Pchp.Core.Convert.NumberInfo.LongInteger);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Converts the given number to int64 (if the number is whole and fits into the int64's range).
 /// </summary>
 /// <param name="number">The number.</param>
 /// <returns><c>long</c> representation of number if possible, otherwise a <c>double</c> representation.</returns>
 private static PhpNumber ConvertToLong(double number)
 {
     if ((Math.Round(number) == number) && (number <= long.MaxValue) && (number >= long.MinValue))
     {
         return(PhpNumber.Create((long)number));
     }
     return(PhpNumber.Create(number));
 }
Exemplo n.º 3
0
 public static PhpNumber abs(long number)
 {
     if (number == long.MinValue)
     {
         return(PhpNumber.Create(-(double)number));
     }
     else
     {
         return(PhpNumber.Create(Math.Abs(number)));
     }
 }
Exemplo n.º 4
0
 public static PhpNumber abs(long lx)
 {
     if (lx == long.MinValue)
     {
         return(PhpNumber.Create(-(double)lx));
     }
     else
     {
         return(PhpNumber.Create(Math.Abs(lx)));
     }
 }
Exemplo n.º 5
0
 public abstract Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number);
Exemplo n.º 6
0
 public static ConversionCost ToDouble(PhpNumber value) => value.IsLong ? ConversionCost.ImplicitCast : ConversionCost.Pass;
Exemplo n.º 7
0
 /// <summary>
 /// Returns the absolute value of <paramref name="number"/>.
 /// </summary>
 /// <param name="number">The numeric value to process.</param>
 public static PhpNumber abs(PhpNumber number)
 {
     return(number.IsLong
         ? abs(number.Long)
         : PhpNumber.Create(Math.Abs(number.Double)));
 }
Exemplo n.º 8
0
 public static NumberInfo ToNumber(string str, out PhpNumber number)
 {
     long l;
     double d;
     var info = StringToNumber(str, out l, out d);
     number = ((info & NumberInfo.Double) != 0) ? PhpNumber.Create(d) : PhpNumber.Create(l);
     return info;
 }
Exemplo n.º 9
0
 public static ConversionCost ToInt64(PhpNumber value) => value.IsLong ? ConversionCost.Pass : ConversionCost.LoosingPrecision;
Exemplo n.º 10
0
        public Convert.NumberInfo ToNumber(out PhpNumber number)
        {
            double d;
            long l;
            var info = Convert.StringToNumber(ToString(), out l, out d);
            number = (info & Convert.NumberInfo.Double) != 0
                ? PhpNumber.Create(d)
                : PhpNumber.Create(l);

            return info;
        }
Exemplo n.º 11
0
 public static ConversionCost ToInt64(PhpNumber value) => value.IsLong ? ConversionCost.Pass : ConversionCost.LoosingPrecision;
Exemplo n.º 12
0
 /// <summary>
 /// Returns the absolute value of <paramref name="x"/>.
 /// </summary>
 /// <param name="x">The numeric value to process.</param>
 public static PhpNumber abs(PhpNumber x)
 {
     return(x.IsLong
         ? abs(x.Long)
         : PhpNumber.Create(Math.Abs(x.Double)));
 }
Exemplo n.º 13
0
 public Convert.NumberInfo ToNumber(out PhpNumber number)
 {
     number = PhpNumber.Create(Count);
     return Convert.NumberInfo.IsPhpArray | Convert.NumberInfo.LongInteger;
 }
Exemplo n.º 14
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number) => me.WritableString.ToNumber(out number);
Exemplo n.º 15
0
        //PhpBytes IPhpConvertible.ToBinaryString();

        Convert.NumberInfo IPhpConvertible.ToNumber(out PhpNumber number)
        {
            number = PhpNumber.Create(Id);
            return Convert.NumberInfo.LongInteger;
        }
Exemplo n.º 16
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number) => Convert.ToNumber(me.String, out number);
Exemplo n.º 17
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number)
 {
     number = PhpNumber.Create(me.Boolean ? 1L : 0L);
     return Convert.NumberInfo.IsNumber | Convert.NumberInfo.LongInteger;
 }
Exemplo n.º 18
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number)
 {
     number = PhpNumber.Create(me.Double);
     return Convert.NumberInfo.IsNumber | Convert.NumberInfo.Double;
 }
Exemplo n.º 19
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number)
 {
     number = PhpNumber.Create(0L);
     return Convert.NumberInfo.LongInteger;
 }
Exemplo n.º 20
0
 public void Echo(PhpNumber value)
 {
     if (value.IsLong)
         Echo(value.Long);
     else
         Echo(value.Double);
 }
Exemplo n.º 21
0
 public Convert.NumberInfo ToNumber(out PhpNumber number) => Value.ToNumber(out number);
Exemplo n.º 22
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number)
 {
     if (me.Object is IPhpConvertible) return ((IPhpConvertible)me.Object).ToNumber(out number);
     throw new NotImplementedException();
 }
Exemplo n.º 23
0
 public override Convert.NumberInfo ToNumber(ref PhpValue me, out PhpNumber number) => me.Alias.ToNumber(out number);
Exemplo n.º 24
0
 /// <summary>
 /// Returns the absolute value of <paramref name="x"/>.
 /// </summary>
 /// <param name="x">The numeric value to process.</param>
 public static PhpNumber abs(PhpNumber x)
 {
     return x.IsLong
         ? abs(x.Long)
         : PhpNumber.Create(Math.Abs(x.Double));
 }
Exemplo n.º 25
0
 /// <summary>
 /// Returns <paramref name="base"/> raised to the power of <paramref name="exp"/>.
 /// </summary>
 public static PhpNumber pow(PhpNumber @base, PhpNumber exp) => PhpNumber.Pow(@base, exp);
Exemplo n.º 26
0
 /// <summary>
 /// Returns <paramref name="base"/> raised to the power of <paramref name="exp"/>.
 /// </summary>
 public static PhpNumber pow(PhpNumber @base, PhpNumber exp) => PhpNumber.Pow(@base, exp);
Exemplo n.º 27
0
 public static ConversionCost ToInt32(PhpNumber value) => ToInt64(value);
Exemplo n.º 28
0
 public static ConversionCost ToInt32(PhpNumber value) => ToInt64(value);
Exemplo n.º 29
0
 public static ConversionCost ToDouble(PhpNumber value) => value.IsLong ? ConversionCost.ImplicitCast : ConversionCost.Pass;
Exemplo n.º 30
0
 public static int Compare(PhpNumber x, PhpValue y) => x.IsLong ? Compare(x.Long, y) : Compare(x.Double, y);