You are here

public static function PHPExcel_Calculation_Engineering::DECTOHEX in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php \PHPExcel_Calculation_Engineering::DECTOHEX()

* DECTOHEX * * Return a decimal value as hex. * * Excel Function: * DEC2HEX(x[,places]) * * @access public * @category Engineering Functions *

Parameters

string $x The decimal integer you want to convert. If number is negative,: * places is ignored and DEC2HEX returns a 10-character (40-bit) * hexadecimal number in which the most significant bit is the sign * bit. The remaining 39 bits are magnitude bits. Negative numbers * are represented using two's-complement notation. * If number < -549,755,813,888 or if number > 549,755,813,887, * DEC2HEX returns the #NUM! error value. * If number is nonnumeric, DEC2HEX returns the #VALUE! error value. * If DEC2HEX requires more than places characters, it returns the * #NUM! error value. * @param integer $places The number of characters to use. If places is omitted, DEC2HEX uses * the minimum number of characters necessary. Places is useful for * padding the return value with leading 0s (zeros). * If places is not an integer, it is truncated. * If places is nonnumeric, DEC2HEX returns the #VALUE! error value. * If places is zero or negative, DEC2HEX returns the #NUM! error value. * @return string

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php, line 1284

Class

PHPExcel_Calculation_Engineering
PHPExcel_Calculation_Engineering

Code

public static function DECTOHEX($x, $places = null) {
  $x = PHPExcel_Calculation_Functions::flattenSingleValue($x);
  $places = PHPExcel_Calculation_Functions::flattenSingleValue($places);
  if (is_bool($x)) {
    if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) {
      $x = (int) $x;
    }
    else {
      return PHPExcel_Calculation_Functions::VALUE();
    }
  }
  $x = (string) $x;
  if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) {
    return PHPExcel_Calculation_Functions::VALUE();
  }
  $x = (string) floor($x);
  $r = strtoupper(dechex($x));
  if (strlen($r) == 8) {

    //	Two's Complement
    $r = 'FF' . $r;
  }
  return self::_nbrConversionFormat($r, $places);
}