اگه میشه ببینید مشکل این کد چیه. ممنون

amir01

Well-Known Member
بچه ها من یه کدی نوشتم ولی هر جا از
کد:
180/$PI
استفاده کردم ارور Division by zero رو میده. اگه کمک کنید ممنون میشم.
$PI = 3.141592653589793;
کد:
	$d = 6 + 30 * ($m - 1)+ $d + $h / 24;
	$M = 74.2023 + 0.98560026 * $d;
	$L = -2.75043 + 0.98564735 * $d;
	$lst = 8.3162159 + 0.065709824 * floor($d) + 1.00273791 * 24 * ($d % 1) + $lg / 15;
	$e = 0.0167065;
	$omega = 4.85131 - 0.052954 * $d;
	$ep = 23.4384717 + 0.00256 * cosd($omega);
	$ed = 180.0 / $PI * $e;
	$u = $M;
	for($i=1; $i < 5; $i++) {
		$u = $u - ($u - $ed * sind($u) - $M)/(1 - $e * cosd($u));
	}
	$v = 2 * atand(tand($u/2) * sqrt((1+$e)/(1-$e)));
	$theta = $L + $v - $M - 0.00569 - 0.00479 * sind($omega);
	$delta = asind(sind($ep)*sind($theta));
	$alpha = 180.0/$PI * atan2(cosd($ep) * sind($theta), cosd($theta));
	if($alpha >= 360){
		$alpha -= 360;
	}
	$ha = $lst - $alpha/15;
	$zr = Roundd($h-$ha, 24);
	$ret[0] = $zr;
	$ret[1] = $delta;
	return $ret;
قبلا از کمکتون تشکر میکنم. یاحق
 

tabib_m

Member
برای جداسازی بخش های عملیات ، از پرانتز استفاده کن ، تا قاطی نشه.
در ضمن، برای این که بفهمی چرا اینجوری شده، $PI رو echo کن ، که به مقدارش مطمئن شی.

موفق باشید.
 

amir01

Well-Known Member
من این کار رو کردم متوجه شدم چون حاصلضرب $e1 و $PI عددی بین صفر و یک است php اتوماتیک جز صحیحش رو خروجی میده اگه میشه تابعی برای اینکه خود عدد رو خروجی بده معرفی کنید. ممنون... یاحق
 

jhoseini

Member
چون حاصلضرب $e1 و $PI عددی بین صفر و یک است php اتوماتیک جز صحیحش رو خروجی میده
فکر نمیکنم اینطور باشه، چون :
PHP:
<?
$PI = 0.00554545524545;
$e = 0.00654343554;
$ed = 180.0 / $PI * $e;
echo $ed;
?>
کد:
exp: 212.393454652
کد:
PHP Version 4.4.4
 

memeri

Member
چرا منم مشکل امیر رو داشتم.و می نوشت نمی تونه تبدیل کنه
 

جدیدترین ارسال ها

بالا