-1
我是PHP初學者,我想創建一個將十進制數轉換爲十六進制數的程序。 (實際上我想將我的顏色十進制值轉換爲十六進制值)但是,它無法正常工作。例如,當我按下按鈕轉換這個參數:紅= 98藍= 123 =綠色54 它會產生這樣的結果:PHP計算不正確
Red : Green : Blue : B
我不明白自己做錯了什麼是。
這是我的源代碼:
<html>
<head>
<title>Convert Decimal Number to Hexadecimal Number</title>
<form method="POST" action="index.php" >
Red : <input type="text" name="red" /> <br />
Green: <input name="green" type="text" /> <br />
Blue : <input name="blue" type="text" /> <br />
<input type="submit" value="Calculate!" /> <br />
</form>
</head>
<body>
<?php
$completely="";
if ($_POST['red']==""){
exit();
}
function subcalculate($valuetoconvert){
if ($valuetoconvert>9){
switch ($valuetoconvert){
case 10:
$valuetoconvert=A;
break;
case 11:
$valuetoconvert=B;
break;
case 12:
$valuetoconvert=C;
break;
case 13:
$valuetoconvert=D;
break;
case 14:
$valuetoconvert=E;
break;
case 15:
$valuetoconvert=F;
break;
}
return $valuetoconvert;
}
}
function dectohexcal($color,$colorname){
$bir=subcalculate(($color-($color%16))/16);
$iki=subcalculate($color%16);
if ($bir==0){
echo "$colorname : $iki <br />";
$completely=$completely+$iki;
}else{
echo "$colorname : $bir$iki <br />";
$completely=$completely+$bir+$iki;
}
}
dectohexcal($_POST['red'], "Red");
dectohexcal($_POST['green'], "Green");
dectohexcal($_POST['blue'], "Blue");
echo "<br />$completely";
?>
</body>
爲什麼要重新發明輪子?有一個函數可以將小數轉換爲十六進制:http://php.net/manual/en/function.dechex.php – Qirel
而你的問題似乎是你只在'subcalculate()'內返回'$ valuetoconvert',是> 9,所以它不返回任何<= 9的東西 – Qirel