簡體   English   中英

舍入到5和9 PHP

[英]Round to 5 and 9 php

我正在尋找一個公式來將值四舍五入到最接近的5或9,如果val小於5則使5大於5時使9。

例:

$RoundToFive = ceil('232' / 5) * 5;
echo floor($RoundToFive  * 2 ) / 2; //Result is 235 Is good

$RoundToNine = ceil('236' / 5) * 5;
echo floor($RoundToNine  * 2 ) / 2; //Result is 240 but i need 239

有沒有辦法總是提取最后兩位數字並將其轉換為5或9?

任何幫助表示贊賞!

怎么樣:

function funnyRound($number){
    $rounded = ceil($number / 5) * 5;
    return $rounded%10?$rounded:$rounded-1;
}

這工作

<?php
function roundToDigits($num, $suffix, $type = 'floor') {
    $pow = pow(10, floor(log($suffix, 10) + 1));
    return $type(($num - $suffix) / $pow) * $pow + $suffix; 
};
$RoundToNine = ceil('236' / 5) * 5;
echo roundToDigits($RoundToNine,5);
echo roundToDigits($RoundToNine,9);

您可以使用任何數字作為$后綴來四舍五入。

其他方式,使用字符串...:

<?php

function round59($NUMB){

    //cast the value to be Int
    $NUMB = intval($NUMB);

    //Get last number
    $last_number = intval(substr($NUMB, -1)); 

    $ROUND_NUMBER = 5;
    if($last_number<=5)
        $ROUND_NUMBER = 5;
    else
        $ROUND_NUMBER = 9;

    //Remove Last Character
    $NUMB = substr($NUMB, 0, -1);

    // now concat the results 
    return intval($NUMB."".$ROUND_NUMBER) ; 
} 

echo round59(232);
echo round59(236);
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM