Refine search
@Override public BigInteger toBigInteger() { return new BigDecimal(value).toBigInteger(); }
protected void convertNumberToBigInteger() throws IOException { if ((_numTypesValid & NR_BIGDECIMAL) != 0) { // here it'll just get truncated, no exceptions thrown _numberBigInt = _numberBigDecimal.toBigInteger(); } else if ((_numTypesValid & NR_LONG) != 0) { _numberBigInt = BigInteger.valueOf(_numberLong); } else if ((_numTypesValid & NR_INT) != 0) { _numberBigInt = BigInteger.valueOf(_numberInt); } else if ((_numTypesValid & NR_DOUBLE) != 0) { _numberBigInt = BigDecimal.valueOf(_numberDouble).toBigInteger(); } else { _throwInternal(); } _numTypesValid |= NR_BIGINT; }
if (number instanceof BigDecimal) { return (T) ((BigDecimal) number).toBigInteger(); return (T) BigInteger.valueOf(number.longValue()); return (T) new BigDecimal(number.toString());
/** Return the long that {@code stringValue} stores or throws an exception if the * stored value cannot be converted to a long that stores the exact same * value and {@code coerce} is false. */ public static long toLong(String stringValue, boolean coerce) { try { return Long.parseLong(stringValue); } catch (NumberFormatException e) { // we will try again with BigDecimal } final BigInteger bigIntegerValue; try { BigDecimal bigDecimalValue = new BigDecimal(stringValue); bigIntegerValue = coerce ? bigDecimalValue.toBigInteger() : bigDecimalValue.toBigIntegerExact(); } catch (ArithmeticException e) { throw new IllegalArgumentException("Value [" + stringValue + "] has a decimal part"); } catch (NumberFormatException e) { throw new IllegalArgumentException("For input string: \"" + stringValue + "\""); } if (bigIntegerValue.compareTo(MAX_LONG_VALUE) > 0 || bigIntegerValue.compareTo(MIN_LONG_VALUE) < 0) { throw new IllegalArgumentException("Value [" + stringValue + "] is out of range for a long"); } return bigIntegerValue.longValue(); }
static Number computeValue(final String value) { final BigDecimal bigDecimalValue = new BigDecimal(value); if (bigDecimalValue.scale() > 0) { return bigDecimalValue; } return bigDecimalValue.toBigInteger(); }
return ((BigDecimal) val).toBigInteger(); return new BigDecimal(((Number) val).doubleValue()).toBigInteger(); return BigInteger.valueOf(((Number) val).longValue()); return new BigDecimal(valStr).toBigInteger();
protected void convertNumberToBigInteger() throws IOException { if ((_numTypesValid & NR_BIGDECIMAL) != 0) { // here it'll just get truncated, no exceptions thrown _numberBigInt = _numberBigDecimal.toBigInteger(); } else if ((_numTypesValid & NR_LONG) != 0) { _numberBigInt = BigInteger.valueOf(_numberLong); } else if ((_numTypesValid & NR_INT) != 0) { _numberBigInt = BigInteger.valueOf(_numberInt); } else if ((_numTypesValid & NR_DOUBLE) != 0) { _numberBigInt = BigDecimal.valueOf(_numberDouble).toBigInteger(); } else { _throwInternal(); } _numTypesValid |= NR_BIGINT; }
BigInteger k = new BigDecimal(doubleValue).toBigInteger();
return ((BigDecimal) val).toBigInteger(); return new BigDecimal(((Number) val).doubleValue()).toBigInteger(); return BigInteger.valueOf(((Number) val).longValue()); return new BigDecimal(valStr).toBigInteger();
@Override public BigInteger getBigIntegerValue() throws IOException { final Number value = getNumberValue(); if (value instanceof BigInteger) { return (BigInteger) value; } else if (value instanceof BigDecimal) { return ((BigDecimal) value).toBigInteger(); } return BigInteger.valueOf(value.longValue()); }
private boolean isIntegral(Number stepSize) { BigDecimal tempStepSize = new BigDecimal(stepSize.toString()); return tempStepSize.equals(new BigDecimal(tempStepSize.toBigInteger())); }
final BigInteger toTemp = new BigInteger(to.toString()); final BigInteger toNum = inclusive ? toTemp : toTemp.subtract(BigInteger.ONE); final BigInteger sizeNum = new BigDecimal(toNum.subtract(fromNum)).divide(new BigDecimal(stepSize.longValue()), BigDecimal.ROUND_DOWN).toBigInteger().add(BigInteger.ONE); tempsize = sizeNum.compareTo(BigInteger.valueOf(Integer.MAX_VALUE)) == -1 ? sizeNum.intValue() : Integer.MAX_VALUE; shortcut = true; } else if (((from instanceof BigDecimal || from instanceof BigInteger) && to instanceof Number) || ((to instanceof BigDecimal || to instanceof BigInteger) && from instanceof Number)) { final BigDecimal fromNum = new BigDecimal(from.toString()); final BigDecimal toTemp = new BigDecimal(to.toString()); final BigDecimal toNum = inclusive ? toTemp : toTemp.subtract(new BigDecimal("1.0")); final BigInteger sizeNum = toNum.subtract(fromNum).divide(new BigDecimal(stepSize.longValue()), BigDecimal.ROUND_DOWN).toBigInteger().add(BigInteger.ONE); tempsize = sizeNum.compareTo(BigInteger.valueOf(Integer.MAX_VALUE)) == -1 ? sizeNum.intValue() : Integer.MAX_VALUE; shortcut = true;
@Override public BigInteger getBigIntegerValue() throws IOException { Number n = getNumberValue(); if (n instanceof BigInteger) { return (BigInteger) n; } if (getNumberType() == NumberType.BIG_DECIMAL) { return ((BigDecimal) n).toBigInteger(); } // int/long is simple, but let's also just truncate float/double: return BigInteger.valueOf(n.longValue()); }
/** * Transform this Number into a BigInteger. * * @param self a Number * @return a BigInteger * @since 1.0 */ public static BigInteger toBigInteger(Number self) { if (self instanceof BigInteger) { return (BigInteger) self; } else if (self instanceof BigDecimal) { return ((BigDecimal) self).toBigInteger(); } else if (self instanceof Double) { return new BigDecimal((Double)self).toBigInteger(); } else if (self instanceof Float) { return new BigDecimal((Float)self).toBigInteger(); } else { return new BigInteger(Long.toString(self.longValue())); } }
final BigInteger sizeNum = toNum.subtract(fromNum).add(new BigInteger("1")); tempsize = sizeNum.intValue(); if (!BigInteger.valueOf(tempsize).equals(sizeNum)) { tempsize = Integer.MAX_VALUE; ((to instanceof BigDecimal || to instanceof BigInteger) && from instanceof Number)) { final BigDecimal fromNum = new BigDecimal(from.toString()); final BigDecimal toNum = new BigDecimal(to.toString()); final BigInteger sizeNum = toNum.subtract(fromNum).add(new BigDecimal(1.0)).toBigInteger(); tempsize = sizeNum.intValue(); if (!BigInteger.valueOf(tempsize).equals(sizeNum)) { tempsize = Integer.MAX_VALUE;
protected void convertNumberToBigInteger() throws IOException { if ((_numTypesValid & NR_BIGDECIMAL) != 0) { // here it'll just get truncated, no exceptions thrown _numberBigInt = _numberBigDecimal.toBigInteger(); } else if ((_numTypesValid & NR_LONG) != 0) { _numberBigInt = BigInteger.valueOf(_numberLong); } else if ((_numTypesValid & NR_INT) != 0) { _numberBigInt = BigInteger.valueOf(_numberInt); } else if ((_numTypesValid & NR_DOUBLE) != 0) { _numberBigInt = BigDecimal.valueOf(_numberDouble).toBigInteger(); } else { _throwInternal(); } _numTypesValid |= NR_BIGINT; }
@Override protected HiveIntervalDayTime getIntervalDayTime(String arg) { BigDecimal bd = new BigDecimal(arg); BigDecimal bdSeconds = new BigDecimal(bd.toBigInteger()); BigDecimal bdNanos = bd.subtract(bdSeconds); return new HiveIntervalDayTime(0, 0, 0, bdSeconds.intValueExact(), bdNanos.multiply(NANOS_PER_SEC_BD).intValue()); } }
return n; } else if (n instanceof BigInteger) { return new BigDecimal((BigInteger) n); } else if (n instanceof Long) { return new BigDecimal(n.doubleValue()); return ((OverloadedNumberUtil.IntegerBigDecimal) n).bigIntegerValue(); } else if (n instanceof BigDecimal) { return ((BigDecimal) n).toBigInteger(); } else { return BigInteger.valueOf(n.longValue());
protected void convertNumberToBigInteger() throws IOException, JsonParseException { if ((_numTypesValid & NR_BIGDECIMAL) != 0) { // here it'll just get truncated, no exceptions thrown _numberBigInt = _numberBigDecimal.toBigInteger(); } else if ((_numTypesValid & NR_LONG) != 0) { _numberBigInt = BigInteger.valueOf(_numberLong); } else if ((_numTypesValid & NR_INT) != 0) { _numberBigInt = BigInteger.valueOf(_numberInt); } else if ((_numTypesValid & NR_DOUBLE) != 0) { _numberBigInt = BigDecimal.valueOf(_numberDouble).toBigInteger(); } else { _throwInternal(); // should never get here } _numTypesValid |= NR_BIGINT; }
@Override protected HiveIntervalDayTime getIntervalDayTime(String arg) { BigDecimal bd = new BigDecimal(arg); BigDecimal bdSeconds = new BigDecimal(bd.toBigInteger()); BigDecimal bdNanos = bd.subtract(bdSeconds); return new HiveIntervalDayTime(0, 0, 0, bdSeconds.intValueExact(), bdNanos.multiply(NANOS_PER_SEC_BD).intValue()); } }