Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在小数点后显示4位数字,但不舍入值_Php - Fatal编程技术网

Php 在小数点后显示4位数字,但不舍入值

Php 在小数点后显示4位数字,但不舍入值,php,Php,我有一些十进制值,如下所示 6.8199999999999 5.245 0.00147 18.333398 7.1 我需要在小数点后用4位数字显示这些数字,不需要如下四舍五入 6.8199 5.2450 0.0014 18.3333 7.1000 我尝试在php中使用number\u format(),但它会对值进行舍入 任何帮助都将不胜感激这应该对您有用: $number = 6.8199999999999; echo $number = sprintf('%.4f', floor($n

我有一些十进制值,如下所示

6.8199999999999
5.245
0.00147
18.333398
7.1
我需要在小数点后用4位数字显示这些数字,不需要如下四舍五入

6.8199
5.2450
0.0014
18.3333
7.1000
我尝试在php中使用
number\u format()
,但它会对值进行舍入


任何帮助都将不胜感激

这应该对您有用:

$number = 6.8199999999999;
echo $number =  sprintf('%.4f', floor($number*10000*($number>0?1:-1))/10000*($number>0?1:-1));
输出:

6.8199

您可以使用类似于
if(strpos('.',$number)!==false){$number=substr('number,0,strpos('.',$number)+4)}
。这可能需要+5,我不太清楚。或者你可以在4个位置后截断浮动,比如
floor($number*10000)/10000很好。。它可以工作,但当它变为负值时有一个小问题。当我尝试使用
$number=-6.819999999它给了我
-6.8200
。知道怎么解决吗?@LiveEn现在应该可以了!你只需要知道诀窍:另一个幸福的结局。