code: public BigInteger getBytes(){
          return value.multiply(unit.getFactor()).setScale(0, RoundingMode.CEILING).toBigIntegerExact();
      }
docs: Returns the number of bytes that this byte size represents after multiplying the unit factor with the value.
  
  Since the value part can be a represented by a decimal, there is some possibility of a rounding error. Therefore,
  the result of multiplying the value and the unit factor are always rounded towards positive infinity to the
  nearest integer value (see {@link RoundingMode#CEILING}) to make sure that this method never gives values that
  are too small.
  
  @return number of bytes this byte size represents after factoring in the unit.