[英]How to specify number of digits in a float number in php?
该数字是: 1234.56789
或“ -1234.56789”
什么是php函数,指定我们之前有4位数字.
和后5位数字.
?
像这样:
intNumber(1234.56789); //4
floatNumber(1234.56789); //5
编辑:实际上,我想检查此数字是否在(。)之前有4位,在(。)之后有5位。 如果是,则将其保存到数据库中,否则,不将其保存在数据库中。
在PHP中使用round()
和一个额外的参数precision
。
<?php
echo round(1234.56789,4); //"prints" 1234.5679
//^--- The Precision Param
EDIT :
非常感谢。 实际上,我想检查该数字是否在(。)之前有4位数字,而在(。)之后有5位数字。 如果是,则将其保存到数据库中,否则,不将其保存在数据库中。
<?php
function numberCheck($float)
{
$arr=explode('.',$float);
if(strlen(trim($arr[0],'-'))==4 && strlen($arr[1])==5)
{
return 1;
}
else
{
return 0;
}
}
if(numberCheck(1234.56789))
{
echo "You can insert this number !";
}
else
{
echo "Not in the correct format!";
}
我想我无法从number_format得到我想要的东西,所以我做到了,而且效果很好:
public function floatNumber($number)
{
$number_array = explode('.',$number);
$left = $number_array[0];
$right = $number_array[1];
return number_format($number,strlen($right));
}
number_format()示例:
<?php
$number = 1234.56;
// english notation (default)
$english_format_number = number_format($number);
// 1,235
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>
另一种使用字符串函数的解决方案来获取小数点前后的位数
$num = 1234.43214;
$aftDecimal = strlen(substr(strrchr($num, "."), 1));
$befDecimal = strlen($num)- ($aftDecimal+1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.