我试图在php中将float值转换为int值:var_dump((int)(39.3*100.0));//Returns3929butshouldbe3930!var_dump((int)(39.2*100.0));//Returns3920我可以使用ceil使其工作,但有人可以向我解释一下吗?var_dump((int)ceil(39.3*100.0));//Returns3930 最佳答案 这是因为以10为基数具有有限表示的数字在PHP使用的浮点表示中可能具有也可能不具有精确表示。见>php-r"echovar_dump(spr
我试图在php中将float值转换为int值:var_dump((int)(39.3*100.0));//Returns3929butshouldbe3930!var_dump((int)(39.2*100.0));//Returns3920我可以使用ceil使其工作,但有人可以向我解释一下吗?var_dump((int)ceil(39.3*100.0));//Returns3930 最佳答案 这是因为以10为基数具有有限表示的数字在PHP使用的浮点表示中可能具有也可能不具有精确表示。见>php-r"echovar_dump(spr
为什么is_int在下面的情况下总是返回false?echo$_GET['id'];//3if(is_int($_GET['id']))echo'int';//notexecuted 最佳答案 Whydoesis_intalwaysreturnfalse?因为$_GET["id"]是一个字符串,即使它恰好包含一个数字。您的选择:使用filter扩大。filter_input(INPUT_GET,"id",FILTER_VALIDATE_INT)将返回一个整型变量,如果该变量存在、不是数组、表示一个整数并且该整数在有效范围内。否则它将
为什么is_int在下面的情况下总是返回false?echo$_GET['id'];//3if(is_int($_GET['id']))echo'int';//notexecuted 最佳答案 Whydoesis_intalwaysreturnfalse?因为$_GET["id"]是一个字符串,即使它恰好包含一个数字。您的选择:使用filter扩大。filter_input(INPUT_GET,"id",FILTER_VALIDATE_INT)将返回一个整型变量,如果该变量存在、不是数组、表示一个整数并且该整数在有效范围内。否则它将
我正在使用PHP5.3。在我的32位系统上,一个INT的大小:print"PHP_INT_MAX:".PHP_INT_MAX."\n";print"PHP_INT_SIZE:".PHP_INT_SIZE."bytes(".(PHP_INT_SIZE*8)."bits)\n";PHP_INT_MAX:2147483647PHP_INT_SIZE:4字节(32位)但是,我使用的编码算法的一部分依赖于int是上述大小(4字节)这一事实。当我在我的Web主机的服务器上运行代码时,它是一个64位系统并且int大小是原来的两倍。有没有办法强制转换“(int)”以使用32位大小?例如,假设以下代码:
我正在使用PHP5.3。在我的32位系统上,一个INT的大小:print"PHP_INT_MAX:".PHP_INT_MAX."\n";print"PHP_INT_SIZE:".PHP_INT_SIZE."bytes(".(PHP_INT_SIZE*8)."bits)\n";PHP_INT_MAX:2147483647PHP_INT_SIZE:4字节(32位)但是,我使用的编码算法的一部分依赖于int是上述大小(4字节)这一事实。当我在我的Web主机的服务器上运行代码时,它是一个64位系统并且int大小是原来的两倍。有没有办法强制转换“(int)”以使用32位大小?例如,假设以下代码:
我的代码实际结果:int(13)int(0)int(0)float(0)为什么前两个条件的结果不一样?你能给我提供正确的文件吗?我只找到了TypeCasting:PHP中的类型转换与在C中的工作方式非常相似:所需类型的名称写在要转换的变量之前的括号中。在某些类型之间转换时究竟会发生什么可能并不明显。有关详细信息,请参阅以下部分:...Convertingtointeger:来自字符串:查看字符串到数字的转换Stringconversiontonumbers当在数字上下文中评估字符串时,结果值和类型确定如下。所以,据我所知,文档说直接转换为int和通过放入数字上下文应该是相同的。我的错误
我的代码实际结果:int(13)int(0)int(0)float(0)为什么前两个条件的结果不一样?你能给我提供正确的文件吗?我只找到了TypeCasting:PHP中的类型转换与在C中的工作方式非常相似:所需类型的名称写在要转换的变量之前的括号中。在某些类型之间转换时究竟会发生什么可能并不明显。有关详细信息,请参阅以下部分:...Convertingtointeger:来自字符串:查看字符串到数字的转换Stringconversiontonumbers当在数字上下文中评估字符串时,结果值和类型确定如下。所以,据我所知,文档说直接转换为int和通过放入数字上下文应该是相同的。我的错误
我尝试了(int)"4209531264"和intval("4209531264")但遗憾的是,我得到的只是2147483647(我意识到这是因为32位架构或某些php依赖项或其他原因)。我想出了"4209531264"+0,它返回了正确的结果,但令人惊讶的是它能正常工作,因为它超出了maxint。但真正的问题是:这是将字符串转换为long的“正确方法”吗?编辑:(float)即。感谢评论!大开眼界! 最佳答案 只要您对最终得到的值类型不是很在意,"number"+0可能是转换输入的最佳方式,因为它会转换为“自然值”"数字数据类型。
我尝试了(int)"4209531264"和intval("4209531264")但遗憾的是,我得到的只是2147483647(我意识到这是因为32位架构或某些php依赖项或其他原因)。我想出了"4209531264"+0,它返回了正确的结果,但令人惊讶的是它能正常工作,因为它超出了maxint。但真正的问题是:这是将字符串转换为long的“正确方法”吗?编辑:(float)即。感谢评论!大开眼界! 最佳答案 只要您对最终得到的值类型不是很在意,"number"+0可能是转换输入的最佳方式,因为它会转换为“自然值”"数字数据类型。