Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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_Integer - Fatal编程技术网

如何在PHP中从整数中获取前4位数字

如何在PHP中从整数中获取前4位数字,php,integer,Php,Integer,经过几次计算,我得到: $int = 14.285714285714; 我怎么能只取前四位数字?预期输出:14.28使用substr功能 $int = 14.285714285714; echo substr($int, 0, 5); $newint = (float)substr($int, 0, 5); 如果你想把这个数字四舍五入,你可以用 round($int, 2); 输出将为:14.29 试试数字格式 string number_format ( float $numbe

经过几次计算,我得到:

$int = 14.285714285714;

我怎么能只取前四位数字?预期输出:
14.28
使用substr功能

$int = 14.285714285714;
echo substr($int, 0, 5);

$newint = (float)substr($int, 0, 5);

如果你想把这个数字四舍五入,你可以用

round($int, 2);
输出将为:14.29


试试数字格式

string number_format ( float $number [, int $decimals = 0 ] )
所以


使用字符串函数执行此操作绝对是错误的,而且这些几乎相同的答案看起来相当垃圾。如果你想把一个数字四舍五入,那就把它四舍五入!

$int=round(14.285714285714,2);
截断(与舍入相反),
floor
是PHP中正确的函数:

$int=floor(14.285714285714*100)/100;
两者都可以在不进行任何类型转换或转换的情况下工作

还要注意,带小数点的数字绝对不是整数。

floor(100*14.285714285714)/100


14.28

你需要精确到2?如果整数是123.45,你想取什么?请更具体一点,并添加更多的例子。真的要转换为整数吗?这就可以了。我会尽快接受答案。谢谢大家的回复:)真的,不要接受这个,把数字四舍五入是错误的。。。他想让数字的前4位对使用数字格式来格式化一个数字投反对票,那么这是为了什么?
number\u格式
是为了格式化一个数字以便显示,而不是为了四舍五入。如果在计算中使用,您的示例将产生错误的答案。Op在哪里说它用于计算?上面写着“预期产出:”,更不用说你可以简单地把它变成一个浮点数。同意下一票已经失控了。使用数字_格式为可行的解决方案提供+1。我们必须提供假设,因为最初的问题是模糊的。同上,我喜欢数字格式,因为它可以让你选择更改小数点和千位分隔符。一般来说,如果我对它进行计算,我只会对我显示的结果进行四舍五入,因为这对于浮点数来说要精确得多。在计算它之前,四舍五入可以是+/-1。他不想四舍五入他想要的是前4位-1我只是在命令行上做了这个,我得到了
14.29
。OP想要
14.28
@Joshua Huber看看我的答案哈哈,我们在同一时间用
地板写了同样的想法。我被一个沉默的选民否决了。当心,好了,安静点,大声点。有什么问题吗?这段代码返回OP所需的输出14.28。“我什么时候应该投反对票?当你遇到一篇非常草率、不费力气的帖子,或者一个答案显然是错误的,甚至可能是危险的错误时,请使用你的反对票。”-
$int = 14.285714285714;
$small = (float)number_format (  $int ,2,'.', '' ); //gets rid of the "," for thousand separator