在 PHP 中将字符串转换为浮点数

use*_*366 0 php string double decimal

我有一个像 "0.00050722" 这样的字符串值,我想将它的数据类型转换为double/float。

我一直在尝试floatval()和doubleval()但它总是返回 0 的值。

我需要在浮点数据类型中获得 0.00050722 的确切数量。

hos*_*oss 5

您只需要到(typecast)所需的类型

    <?php
    $string = "0.00050722";
    $float = (float) $string;
    $float2 = $string + 0.0; //this works as well.
    $floatval = floatval($string);
    $double = (double) $string;

    // TEST
    printf("string:   %s - %d<br>", $string, is_float ($string));
    printf("float :   %g - %d<br>", $float, is_float ($float));
    printf("float2:   %g - %d<br>", $float2, is_float ($float2));
    printf("floatval: %g - %d<br>", $floatval, is_float($floatval));
    printf("double:   %g - %d<br>", $string, is_double ($double));

?>
Run Code Online (Sandbox Code Playgroud)

应该导致:

string:   0.00050722 - 0
float :   0.00050722 - 1
float2:   0.00050722 - 1
floatval: 0.00050722 - 1
double:   0.00050722 - 1
Run Code Online (Sandbox Code Playgroud)

请注意,串联也有效。