我有兩種不同的功能天花板和地板,它們會將給定的數字設置爲在功能中指定的數量。功能如下:PHP Ceil和樓到精舍的精確到100
function ceiling($number, $significance) {
if ($significance != null) {
return (is_numeric($number) && is_numeric($significance)) ? (ceil($number/$significance) * $significance) : $number;
} else {
return $number;
}}
function flooring($number, $significance) {
if ($significance != null) {
return (is_numeric($number) && is_numeric($significance)) ? (floor($number/$significance) * $significance) : $number;
} else {
return $number;
}}
利用上述功能,其結果將是如下:
echo ceiling(125, 100); // 200
echo ceiling(2785, 1000); // 3000
echo flooring(125, 100); // 100
echo flooring(2785, 1000); // 2000
問題陳述:
我具有特定數目說,1234這將乘以0.7268的匯率。這將生成一個特定號碼,但它有使用具有意義上取整函數總是被四捨五入到最近的100爲100
$rate = 0.7268;
$res = $rate * 1234;
$res = ceiling($res, 100); // result : 900
的結果它四捨五入到最接近的100
後以上將是900現在在代碼的不同部分,我可以訪問結果900,匯率0.7268和用於舍入的值,在我們的例子中爲100。是否有可能獲得初始值1234作爲答案。
我猜這不得不使用地板功能,但我不能安靜地使它工作。
這是我曾嘗試:
$final = $res * (1/$rate);
$final = flooring($final, 100); // result : 1200 which is wrong.
正確的答案,這是1234
感謝。
我不認爲它會盡我所知。當你圍繞一些東西時,就其本質而言,你正在消除它的精確性。這意味着,當你逆轉這個過程時,你將無法獲得準確的'回'。 – Djave
這是一個肯定的答案.. –