} // _Number_Comparable_Impl_ //public static IComparable<object> getComparable(object o) //{ // NNumber n = toNumber(o); // return new _Number_Comparable_Impl_(_instance, n); //} // getComparable() public int Compare(object o1, object o2) { NNumber n1 = toNumber(o1); NNumber n2 = toNumber(o2); if (n1 == null && n2 == null) { return(0); } if (n1 == null) { return(-1); } if (n2 == null) { return(1); } if (n1 is NNumber && n2 is NNumber) { return((n1.asBigInteger()).CompareTo(n2.asBigInteger())); } //if (n1 is BigDecimal && n2 is BigDecimal) { // return ((BigDecimal)n1).compareTo((BigDecimal)n2); //} if (NumberComparator.IsIntegerType(n1) && NumberComparator.IsIntegerType(n2)) { return(NInteger.ValueOf(n1).CompareTo(n2.asLong())); } return(NNumber.ValueOf(n1).CompareTo(n2.asLong())); } // Compare()