while循环条件中的is_double函数

时间:2014-10-18 15:00:49

标签: php

我正在尝试获取十进制数的小数。我试过遵循简单的代码,但循环运行永远。

    $var = 123.456;
    $fraction_count = 0;
    echo $var, "<br>";
    while (is_double($var)) {
        $var *= 10;
        $fraction_count++;
        echo $var, "<br>";
    }

我是php的新手,请原谅我,如果这是一个愚蠢的问题!

1 个答案:

答案 0 :(得分:1)

浮点数不易处理(有关详细信息,请参阅manual)。但你甚至不需要处理这个数字。

如果您将其视为字符串,则可以.explode()并使用第二部分strlen()获取$fraction_count

$var = 123.456;
$parts = explode('.', $var);
$fraction_count = strlen($parts[1]);

由于PHP不会在数字上保存尾随0,因此这也适用于123.4560,但请务必将其作为数字输入,"123.4560"会让您获得错误的结果。