使用PHP floatval会在小数位后面添加不需要的尾随数字

dpiehjr4  于 2023-04-04  发布在  PHP
关注(0)|答案(2)|浏览(96)

我有一个问题与php转换从字符串到浮点数
在某些情况下,如果我这样做:

floatval("8.80")

我得到:

8.800000000000001

我曾尝试过round(x,1)、number_format等,但都无济于事
我哪里搞错了?

hfyxw5xn

hfyxw5xn1#

使用number_format将有助于解决您的问题

<?php
    $number = 8.800000000000001;
    $precision = 1;
    $number = intval($number * ($p = pow(10, $precision))) / $p;
    echo number_format((float) $number, $precision, '.', ''); 
?>

wbgh16ku

wbgh16ku2#

我有相同的发行人,在字符串中使用number_format ou bcmath库工作进行显示。但如果你做一个计算,同样的问题。

<?php
    $number = 8.800000000000001;
    $precision = 1;
    $number = intval($number * ($p = pow(10, $precision))) / $p;
    echo (float)number_format((float) $number, $precision, '.', '');
?>

这给予同样的坏结果

相关问题