?? numberhelper.java
字號:
package com.reddragon2046.base.utilities.data.functions;
import java.math.BigDecimal;
import java.math.BigInteger;
final class NumberHelper
{
private NumberHelper()
{
}
static BigDecimal asBigDecimal(Number n)
{
return (n instanceof BigDecimal) ? (BigDecimal)n : new BigDecimal(n.toString());
}
static BigInteger asBigInteger(Number n)
{
return (n instanceof BigInteger) ? (BigInteger)n : asBigDecimal(n).toBigInteger();
}
static Number plus(Number n1, Number n2, Class mode)
{
if(mode.equals(java.lang.Integer.class))
return new Integer(n1.intValue() + n2.intValue());
if(mode.equals(java.lang.Long.class))
return new Long(n1.longValue() + n2.longValue());
if(mode.equals(java.lang.Float.class))
return new Float(n1.floatValue() + n2.floatValue());
if(mode.equals(java.lang.Double.class))
return new Double(n1.doubleValue() + n2.doubleValue());
if(mode.equals(java.lang.Byte.class))
return new Byte((byte)(n1.byteValue() + n2.byteValue()));
if(mode.equals(java.lang.Short.class))
return new Short((short)(n1.shortValue() + n2.shortValue()));
if(mode.equals(java.math.BigInteger.class))
return asBigInteger(n1).add(asBigInteger(n2));
if(mode.equals(java.math.BigDecimal.class))
return asBigDecimal(n1).add(asBigDecimal(n2));
else
throw new IllegalArgumentException("unknown subclass of java.lang.Number: " + mode.getClass());
}
static Number minus(Number n1, Number n2, Class mode)
{
if(mode.equals(java.lang.Integer.class))
return new Integer(n1.intValue() - n2.intValue());
if(mode.equals(java.lang.Long.class))
return new Long(n1.longValue() - n2.longValue());
if(mode.equals(java.lang.Float.class))
return new Float(n1.floatValue() - n2.floatValue());
if(mode.equals(java.lang.Double.class))
return new Double(n1.doubleValue() - n2.doubleValue());
if(mode.equals(java.lang.Byte.class))
return new Byte((byte)(n1.byteValue() - n2.byteValue()));
if(mode.equals(java.lang.Short.class))
return new Short((short)(n1.shortValue() - n2.shortValue()));
if(mode.equals(java.math.BigInteger.class))
return asBigInteger(n1).subtract(asBigInteger(n2));
if(mode.equals(java.math.BigDecimal.class))
return asBigDecimal(n1).subtract(asBigDecimal(n2));
else
throw new IllegalArgumentException("unknown subclass of java.lang.Number: " + mode.getClass());
}
static Number multiply(Number n1, Number n2, Class mode)
{
if(mode.equals(java.lang.Integer.class))
return new Integer(n1.intValue() * n2.intValue());
if(mode.equals(java.lang.Long.class))
return new Long(n1.longValue() * n2.longValue());
if(mode.equals(java.lang.Float.class))
return new Float(n1.floatValue() * n2.floatValue());
if(mode.equals(java.lang.Double.class))
return new Double(n1.doubleValue() * n2.doubleValue());
if(mode.equals(java.lang.Byte.class))
return new Byte((byte)(n1.byteValue() * n2.byteValue()));
if(mode.equals(java.lang.Short.class))
return new Short((short)(n1.shortValue() * n2.shortValue()));
if(mode.equals(java.math.BigInteger.class))
return asBigInteger(n1).multiply(asBigInteger(n2));
if(mode.equals(java.math.BigDecimal.class))
return asBigDecimal(n1).multiply(asBigDecimal(n2));
else
throw new IllegalArgumentException("unknown subclass of java.lang.Number: " + mode.getClass());
}
static Number divides(Number n1, Number n2, Class mode, int round_mode)
{
if(mode.equals(java.lang.Integer.class))
return new Integer(n1.intValue() / n2.intValue());
if(mode.equals(java.lang.Long.class))
return new Long(n1.longValue() / n2.longValue());
if(mode.equals(java.lang.Float.class))
return new Float(n1.floatValue() / n2.floatValue());
if(mode.equals(java.lang.Double.class))
return new Double(n1.doubleValue() / n2.doubleValue());
if(mode.equals(java.lang.Byte.class))
return new Byte((byte)(n1.byteValue() / n2.byteValue()));
if(mode.equals(java.lang.Short.class))
return new Short((short)(n1.shortValue() / n2.shortValue()));
if(mode.equals(java.math.BigInteger.class))
return asBigInteger(n1).divide(asBigInteger(n2));
if(mode.equals(java.math.BigDecimal.class))
return asBigDecimal(n1).divide(asBigDecimal(n2), round_mode);
else
throw new IllegalArgumentException("unknown subclass of java.lang.Number: " + mode.getClass());
}
static Number modulus(Number n1, Number n2, Class mode, int round_mode)
{
if(mode.equals(java.lang.Integer.class))
return new Integer(n1.intValue() % n2.intValue());
if(mode.equals(java.lang.Long.class))
return new Long(n1.longValue() % n2.longValue());
if(mode.equals(java.lang.Float.class))
return new Float(n1.floatValue() % n2.floatValue());
if(mode.equals(java.lang.Double.class))
return new Double(n1.doubleValue() % n2.doubleValue());
if(mode.equals(java.lang.Byte.class))
return new Byte((byte)(n1.byteValue() % n2.byteValue()));
if(mode.equals(java.lang.Short.class))
return new Short((short)(n1.shortValue() % n2.shortValue()));
if(mode.equals(java.math.BigInteger.class))
return asBigInteger(n1).mod(asBigInteger(n2));
if(mode.equals(java.math.BigDecimal.class))
{
BigDecimal b1 = asBigDecimal(n1);
BigDecimal b2 = asBigDecimal(n2);
BigDecimal d = b1.divide(b2, round_mode);
return b1.subtract(d.multiply(b2));
} else
{
throw new IllegalArgumentException("unknown subclass of java.lang.Number: " + mode.getClass());
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -