草庐IT

floating-point-conversion

全部标签

PHP float 错误 : PHP Hangs On Numeric Value

我刚刚读了一篇关于php卡在某些float上的有趣文章,请参阅TheRegister和ExploringBinary.我从不明确使用float,我使用number_format()来清理我的输入并显示价格示例。此外,据我所知,所有来自例如表单的输入都是字符串,除非我告诉他们否则,所以我假设这个问题不会影响我。我说得对吗,或者我是否需要检查我服务器上的Wordpress和Squirrelmail安装,看看它们是否转换任何内容以float?或者更好的方法是,grep我服务器上的所有php文件用于float? 最佳答案 缓解问题的方法:使

php整数和 float 比较不匹配

我有以下代码$amount1=7299;$amount2=72.9875;$amount2_in_cents=round($amount2,2)*100;if($amount1!=$amount2_in_cents){echo"Amount$amount1!=$amount2_in_cents\n";var_dump($amount1);var_dump($amount2_in_cents);}else{echo"Amountsmatched";}这是输出Amount7299!=7299int(7299)float(7299)现在我意识到float和int是不同的,但考虑到四舍五入,我

php oci_bind_by_name float

我需要将float绑定(bind)到OCI语句。我在做什么:$price=0.1oci_bind_by_name($resource,'price',$price);在我的Oracle数据库中,“价格”是存储过程的一个参数,它的类型是NUMERIC。执行语句后出现以下错误:Message:oci_execute()[function.oci-execute]:ORA-06502:PL/SQL:numericorvalueerror:charactertonumberconversionerrorORA-06512:atline1如果$price是一个整数,一切正常。在PHP文档中htt

php - 为什么我不能在 PHP 中将对象转换为 float ?

我正在用PHP创建一个对象(我们称它为Decimal),它包装了bcmath功能并添加了一些新功能。大部分实际工作发生在静态函数中,例如add(...)和divide(...)。唯一的实例方法是访问器方法(为不变性万岁!)和__toString()魔法方法。__toString适用于大多数情况,但有一个奇怪的例子,我希望我的类型转换为float/double/real。我可以使用实例方法或通过执行(float)(string)转换来完成此操作,但似乎合乎逻辑的是应该有类似的魔术方法来执行此操作,例如__toFloat。不幸的是,它似乎没有。我找不到任何与此相关的文档。我尝试将其作为__

php - 在 PHP : ORA-01460: unimplemented or unreasonable conversion requested 中执行存储过程

在PHP中执行存储过程会出现ORA-01460。这是php中的简化(原始输入值超过48个)代码:$proc_sql="BEGINCREATE_RECORD(:b1,:b2,:b3,:b4,:b5,:b6);END;";$bind=array("bind1","bind2","bind3","bind4","bind5","OUTDUMMY");$stmt=oci_parse($conn,$proc_sql);$i=1;$outval="";foreach($bindas$val){$tmp=":b".$i;if($i最后一行产生警告。但是,如果我直接在SQLDeveloper中运行查询

javascript - 在 Converse JS 和 Openfire Server 之间创建持久连接

使用ConverseJSv0.9.5作为Messenger的Web前端OpenfireXMPPServerv3.10.2作为信使的后端Web应用程序本身是用PHP编写的。目前,Openfire和网站有单独的数据库,但它们是同步的。我想实现的是:当用户登录网站时,ConverseJS也必须登录并与OpenfireXMPPServer创建持久连接在整个用户session期间,直到注销。我发现了什么在ConverseJS和Openfire网站上进行了大量谷歌搜索和研究。阅读,有prebindproperty和SingleSessionSupport对于ConverseJS,它可以实现我想要的

php - 为什么 PHP 的 float 0(零)显示时带符号?

在PHP中,让我们创建一个变量并将其值设置为0:$x=0;echo$x;它将显示0。如果将其乘以-1:$x=-1*$x;echo$x;我们仍然看到0。但是如果$x是一个float:$x=0;$x=(float)$x;$x=-1*$x;echo$x;我们会得到输出:-0。这是为什么呢?零不应该总是无符号显示,不管它的底层类型是什么? 最佳答案 因为PHP通常对float使用IEEE754double格式,它包括:1)符号(1位)2)指数(11位)3)分数(52位)如果将$x与-1相乘,则设置符号位。整数使用两个补码,其中最高有效位(M

PHP 随机 - 排除/包含/ float /底片和其他动物

我需要生成一定范围内的随机数字对(float)。基本上这些是[Lat,Lng]对(经度-纬度坐标)的点我认为这会非常简单但它并没有让我控制float(分辨率)之后的数字数量-我需要修复它。所以下一阶段是:这行得通。有点..有时它会产生像这样的结果22.212346||33.134||36.870757||//(rare,butdoeshappen)但是嘿-坐标是从-90到90(lon)和-180到180(lan)-那减号呢?echo(rand(0,-180*pow(10,9)))/pow(10,9).'||';应该这样做......并且将所有组合在一起应该以某种方式给我一个随机字符串,

php - 为什么 propel 将 float 属性转换为字符串?

我刚刚注意到,propel在生成的setter方法中将数值转换为字符串。我的问题是,因为我使用的是德语语言环境,所以浮点值是用逗号而不是点插入的。例如:“3.5”产生字符串“3,5”。我正在使用PostgreSQL,它显然需要3.5。版本信息:如果相关,我正在使用:PHP5.3.9、Propel1.6和Symfony2.2。详细信息:表定义如下所示:......生成的setAmount()方法如下所示:publicfunctionsetAmount($v){if($v!==null&&is_numeric($v)){$v=(string)$v;}if($this->amount!==$

php - UTF-8 : successful conversion to iso-8859-1 but not to iso-8859-2

我在MSAccess上有一个数据库,我通过调用PDO和odbc驱动程序将其与PHP一起使用。我的数据库中有法语、丹麦语和波兰语单词。法语和丹麦语没问题,但波兰语字符没办法,我只得到“?”相反。代码如下:try{$db=newPDO("odbc:DRIVER={MicrosoftAccessDriver(*.mdb,*.accdb)};DBQ=$dbName;Uid=Admin;Pwd=;");}catch(PDOException$e){echo$e->getMessage();}$answer=$db->query("SELECT*FROMdict_mainWHEREIDfetch(