草庐IT

float_info

全部标签

php - 将货币格式的字符串转换为 float

我必须读取一个相当大的文件,其中包含以不同方式格式化的数字。我试过使用内置的floatval()功能。此函数适用于某些数字,例如22000.76,但不适用于22000,76。阅读php.net上的评论对我帮助很大,我发现了这个parseFloat函数:1)$pString=str_replace(",","",$pString);if(substr_count($pString,".")>1)$pString=str_replace(".","",$pString);$pregResult=array();$commaset=strpos($pString,',');if($comma

php - 将指数数类型转换为 int 或 float

以下代码:echo(int)"2e2";echo(int)2e2;echo(float)"2e2";输出2200200..我不知道为什么。谢谢。 最佳答案 “2e2”是scientificnotation,意思是2*102==200。在您的第一个示例中,将字符串解析为int只会读取第一个非数字(因此它会忽略e)。PHP解析器将2e2视为floatliteral值为200.0,这在转换为int时给出200。将字符串解析为float可以理解符号并给出预期结果200。 关于php-将指数数类型

php $SERVER ['PATH_INFO' ] 和 apache mod_rewrite

我这里有.htaccess文件:Options+FollowSymLinksRewriteEngineonRewriteBase/RewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule.*index.php[QSA,L]并且重写有效,但是当我尝试http://site.com/example时,我的index.php中没有path_info.这个话题我已经红了https://stackoverflow.com/questions/1442854/codeigniter-problem-w

PHP 以大端字节顺序打包/解包 float

如何使用php以大端字节顺序打包/解包float?我通过解包功能走到了这一步,但我不确定这是否可行。functionunpackFloat($float){$n=unpack('Nn');$n=$n['n'];$sign=($n>>31);$exponent=($n>>23)&0xFF;$fraction=$n&0x7FFFFF;} 最佳答案 考虑了一段时间后,我找到了一个非常简单的解决方案,即使用与pack('f')使用的字节顺序相反的字节顺序。解压unpack('fdat',strrev(substr($data,0,4)));

php - 从 $_SERVER ['PATH_INFO' 分析路径的正确方法]

我正在尝试用PHP5.4编写一个小型RESTful服务API(用于教育目的)。因此,我需要分析调用服务的URL。我想要这样做的方法是从$_SERVER['PATH_INFO']中剥离URL路径并将它们放入一个数组中。假设路径信息包含/contacts/14295/。将两条路径放入数组的正确方法是什么?array(2){[0]=>string(8)"contacts"[1]=>string(5)"14295"}我发现至少有两种方法可以将路径信息字符串拆分为一个数组,但这两种方法都会生成一个包含两个以上条目的数组。我找到的第一个方法是explode返回带有尾随空字符串的数组的函数(意味着第

php - 即使将 return as float 设置为 true,PHP 函数 microtime 能否返回一个整数?

我网站的一位用户前几天报告了一个错误,所以我查看了日志并进行了追踪。错误是:Undefinedoffset:1导致此错误的相关代码是:$parts=explode('.',microtime(true));$nonce=base_convert($parts[1],10,36);所以$parts[1]基本上是未定义的。这会不会是因为当调用microtime时恰好它是一个精确的秒,所以它返回一个没有任何小数位的int? 最佳答案 快速测试可以证实您的假设:打印float(1508171125)在我的系统上。所以是的,microtime

php - 为什么浏览器将 info.html 的服务器 API 显示为 Apache 2.0 处理程序,而将 info.php 显示为 FPM/FastCGI?

环境:centos7+php7.2.我按照教程所说的构建FPM/FastCGI。buildFPM/FastCGI在/etc/httpd/conf.d/php.conf中显示我的重要配置。SetHandler"proxy:fcgi://127.0.0.1:9000"SetHandlerapplication/x-httpd-phpphp_valuesession.save_handler"files"php_valuesession.save_path"/var/lib/php/session"php_valuesoap.wsdl_cache_dir"/var/lib/php/wsdlc

PHP date_sun_info 错误时间

我正在尝试使用PHP的date_sun_info函数来获取有关全天太阳某些位置的时间的信息:目前我正在使用类似于documentation中的代码.$sun_info=date_sun_info(strtotime('today'),40.42,74.0);foreach($sun_infoas$key=>$val){echo"$key:".date("H:i:s",$val)."";}输出是:sunrise:20:50:20sunset:07:45:03transit:02:17:41civil_twilight_begin:20:22:45civil_twilight_end:08

php - 将字符串转换为 float 时出现奇怪的结果

我想将字符串转换为float,但我遇到了一些问题。这是我的代码$dataValue=$item[$data];$dataValue=trim($dataValue);var_dump($dataValue);echo"";$dataValue=str_replace(',','.',$dataValue);var_dump($dataValue);echo"";var_dump(floatval($dataValue));echo"";var_dump(floatval('4.02'));echo"";结果string(7)"4,02"string(7)"4.02"float(4)fl

php - 使用 FILTER_VALIDATE_FLOAT 时接受 '.' 或 ',' 作为小数分隔符?

我正在使用PHPfilter_input函数来解析HTML表单输入。其中一个输入字段表示金额。我希望我会有一些用户使用逗号,一些用户使用点作为小数点分隔符。FILTER_VALIDATE_FLOAT过滤器有一个小数点选项,但我还没有想出一个干净的方法来接受这两个字符作为小数点分隔符。目前我的代码看起来像下面这行,但这不接受像123.45这样的金额。$money=filter_input(INPUT_POST,'money',FILTER_VALIDATE_FLOAT,array('options'=>array('decimal'=>',')));是否有任何标准/干净的方法可以接受多种