 7429a98174
			
		
	
	
		7429a98174
		
	
	
	
	
		
			
			git-svn-id: https://phpexcel.svn.codeplex.com/svn/trunk@85691 2327b42d-5241-43d6-9e2a-de5ac946f064
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| class Complex {
 | |
| 
 | |
| 	private $realPart = 0;
 | |
| 	private $imaginaryPart = 0;
 | |
| 	private $suffix = 'i';
 | |
| 
 | |
| 	public static function _parseComplex($complexNumber) {
 | |
| 		$complexNumber = (string) $complexNumber;
 | |
| 
 | |
| 		$validComplex = preg_match('/^([-+]?(\d+\.?\d*|\d*\.?\d+)([Ee][-+]?[0-2]?\d{1,2})?)([-+]?(\d+\.?\d*|\d*\.?\d+)([Ee][-+]?[0-2]?\d{1,2})?)?(([-+]?)([ij]?))$/ui',$complexNumber,$complexParts);
 | |
| 
 | |
| 		if (!$validComplex) {
 | |
| 			return array( $complexNumber, 0, '' );
 | |
| 		}
 | |
| 
 | |
| 		if (($complexParts[4] === '') && ($complexParts[9] !== '')) {
 | |
| 			$complexParts[4] = $complexParts[8] . 1;
 | |
| 		}
 | |
| 
 | |
| 		return array( (float) $complexParts[1],
 | |
| 					  (float) $complexParts[4],
 | |
| 					  $complexParts[9]
 | |
| 					);
 | |
| 	}	//	function _parseComplex()
 | |
| 
 | |
| 
 | |
| 	public function __construct($realPart, $imaginaryPart = null, $suffix = null)
 | |
| 	{
 | |
| 		if ($imaginaryPart === null) {
 | |
| 			if (is_array($realPart)) {
 | |
| 				list ($realPart, $imaginaryPart, $suffix) = $realPart;
 | |
| 			} elseif((is_string($realPart)) || (is_numeric($realPart))) {
 | |
| 				list ($realPart, $imaginaryPart, $suffix) = self::_parseComplex($realPart);
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		$this->realPart = $realPart;
 | |
| 		$this->imaginaryPart = $imaginaryPart;
 | |
| 		$this->suffix = strtolower($suffix);
 | |
| 	}
 | |
| 
 | |
| 	public function getReal()
 | |
| 	{
 | |
| 		return $this->realPart;
 | |
| 	}
 | |
| 
 | |
| 	public function getImaginary()
 | |
| 	{
 | |
| 		return $this->imaginaryPart;
 | |
| 	}
 | |
| 
 | |
| 	public function getSuffix()
 | |
| 	{
 | |
| 		return $this->suffix;
 | |
| 	}
 | |
| 
 | |
| 	public function __toString() {
 | |
| 		$str = "";
 | |
| 		if ($this->imaginaryPart != 0.0) $str .= $this->imaginaryPart . $this->suffix;
 | |
| 		if ($this->realPart != 0.0) {
 | |
| 			if ($str) $str = "+" . $str;
 | |
| 			$str = $this->realPart . $str;
 | |
| 		}
 | |
| 		if (!$str) $str = "0";
 | |
| 		return $str;
 | |
| 	}
 | |
| 
 | |
| }
 |