ポンドをキログラムに、またその逆に変換する必要があります。数値を最も近い四半期(場合によっては半分)に丸めます。私は変換を行い、変換を行い、それを元に戻すことができ、すべての値を同じにする必要があります。変換と丸めのヘルプ
サンプルコード:
for ($i = 1; $i <= 100; $i = $i + .25)
{
$kilograms = convert_pounds_to_kilograms($i);
$pounds = convert_kilograms_to_pounds($kilograms);
$new_kilograms = convert_pounds_to_kilograms($pounds);
echo ("$i => $pounds => $kilograms => $new_kilograms<br/>");
}
function convert_pounds_to_kilograms($pounds)
{
assert(is_numeric($pounds) === TRUE);
$kilograms = $pounds * 0.45359237;
// Round to the nearest quarter
$kilograms = round($kilograms * 4, 0)/4;
return $kilograms;
}
function convert_kilograms_to_pounds($kilograms)
{
assert(is_numeric($kilograms) === TRUE);
$pounds = $kilograms * 2.20462262185;
// Round to the nearest quarter
$pounds = round($pounds * 4, 0)/4;
return $pounds;
}
出力の最初の行が正しい:
1 => 1 => 0.5 => 0.5
第が正しくない:
1.25 => 1 => 0.5 => 0.5
(値1
が1.25
されている必要があり)
どうすればよいですか?私は明らかに変換の精度を求めていません。私はちょうど同じ数にこれらの不正確な値を前後に変換することができる必要があります。
EDIT 1:
この理由は、私は、ユーザーがセンチ、メートル、またはフィート/インチで自分の身長を入力することができますということである - そして、センチメートルにかかわらず、その入力された値を保存する(したがって、最初の変換)。ユーザーは、センチメートル、メートル、またはフィート/インチのいずれかで高さを表示することができます(したがって、可能な変換です)。
したがって、ユーザーが高さをフィート/インチで入力すると、それをセンチメートル単位で保存する必要があります。その後、ユーザーはその高さをft /インチ単位で再度見たいかもしれません。つまり、センチメートルを元のft /インチ値に戻す必要があります。
ユーザーは、値を入力して4分の1ずつ増分することに限られます。意味、5'8.25 "は有効ですが、5'8.39ではありません"。
round()関数を削除しても、正確なコンバージョンを得ることができます。私はこれらの値を最も近い四分の一に丸める必要があることを除いて。 – StackOverflowNewbie
次に、値をユーザーに提示する直前に精度を調整します。この関数でそれを行うと、あなたが見たようにエラーが出るでしょう。 – vascowhite