2

10 進数が整数になるまで 10 を掛けて、10 進数を整数に変換したいと考えています。

例: 0.2 は 2 になり、0.004 は 4 になります。

これが私の機能です

function make_integer($num){
    if (!is_int($num)){
        $temp = $num;
        while (!is_int($temp)){
            $temp *= 10;
        }
        return $temp;
    }
    return $num;
}

私が欲しい

make_integer(0.2) => 2

$temp が整数になったときに関数を停止するべきではありませんか? 関数は無限ループに入っているようです。

なぜこれがうまくいかないのか誰か教えてください。

4

3 に答える 3

0

これは最もきれいではありませんが、機能します。

function make_int($num){

    //if it's not an int...
    if(!is_int($num)){

        //find out how many decimal places and store in a  variable
        $multiply =  strlen(substr(strrchr($num, "."), 1));

        //multiply the number by the power of the multiple.
            $num *= (pow (10,$multiply));

        return $num;
    }
}

make_int(0.004);
于 2013-08-02T20:09:43.700 に答える