Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / util / NumberConversions.java
@vlad20012 vlad20012 on 24 Feb 2017 2 KB initial
package org.bukkit.util;

/**
 * Utils for casting number types to other number types
 */
public final class NumberConversions
{
	private NumberConversions()
	{
	}

	public static int floor(double num)
	{
		final int floor = (int) num;
		return floor == num ? floor : floor - (int) (Double.doubleToRawLongBits(num) >>> 63);
	}

	public static int ceil(final double num)
	{
		final int floor = (int) num;
		return floor == num ? floor : floor + (int) (~Double.doubleToRawLongBits(num) >>> 63);
	}

	public static int round(double num)
	{
		return floor(num + 0.5d);
	}

	public static double square(double num)
	{
		return num * num;
	}

	public static int toInt(Object object)
	{
		if(object instanceof Number)
		{
			return ((Number) object).intValue();
		}

		try
		{
			return Integer.parseInt(object.toString());
		} catch(NumberFormatException e)
		{
		} catch(NullPointerException e)
		{
		}
		return 0;
	}

	public static float toFloat(Object object)
	{
		if(object instanceof Number)
		{
			return ((Number) object).floatValue();
		}

		try
		{
			return Float.parseFloat(object.toString());
		} catch(NumberFormatException e)
		{
		} catch(NullPointerException e)
		{
		}
		return 0;
	}

	public static double toDouble(Object object)
	{
		if(object instanceof Number)
		{
			return ((Number) object).doubleValue();
		}

		try
		{
			return Double.parseDouble(object.toString());
		} catch(NumberFormatException e)
		{
		} catch(NullPointerException e)
		{
		}
		return 0;
	}

	public static long toLong(Object object)
	{
		if(object instanceof Number)
		{
			return ((Number) object).longValue();
		}

		try
		{
			return Long.parseLong(object.toString());
		} catch(NumberFormatException e)
		{
		} catch(NullPointerException e)
		{
		}
		return 0;
	}

	public static short toShort(Object object)
	{
		if(object instanceof Number)
		{
			return ((Number) object).shortValue();
		}

		try
		{
			return Short.parseShort(object.toString());
		} catch(NumberFormatException e)
		{
		} catch(NullPointerException e)
		{
		}
		return 0;
	}

	public static byte toByte(Object object)
	{
		if(object instanceof Number)
		{
			return ((Number) object).byteValue();
		}

		try
		{
			return Byte.parseByte(object.toString());
		} catch(NumberFormatException e)
		{
		} catch(NullPointerException e)
		{
		}
		return 0;
	}
}