【发布时间】:2014-07-17 13:41:08
【问题描述】:
经过几次计算,我得到:
$int = 14.285714285714;
我怎样才能只取前四位数字?预期输出:14.28
【问题讨论】:
-
您需要以精度 2 舍入它吗?如果整数是 123.45 你想取什么?请更具体并添加更多示例。
经过几次计算,我得到:
$int = 14.285714285714;
我怎样才能只取前四位数字?预期输出:14.28
【问题讨论】:
用字符串函数来做这件事绝对是错误的做法,而且这些几乎相同的答案看起来很垃圾。如果要对数字进行四舍五入,请对数字进行四舍五入!
$int = round(14.285714285714, 2);
要截断(与舍入相反),floor 是 PHP 中的正确函数:
$int = floor(14.285714285714 * 100) / 100;
两者都无需任何类型转换或强制转换即可工作。
另请注意,带小数位的数字绝对不是整数。
【讨论】:
14.29。 OP想要14.28。
floor写了同样的想法。我被一些沉默的反对者反对。当心。
使用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 = 14.285714285714;
$small = (float)number_format ( $int ,2,'.', '' ); //gets rid of the "," for thousand separator
【讨论】:
number_format 用于格式化数字以进行显示,而不是用于舍入。如果在计算中使用您的示例,它将产生错误的答案。
floor(100 * 14.285714285714) / 100
14.28
【讨论】: