PHP - WAMP 和 Web 服务器上的浮点数精度差异

2024-01-11

我知道 php 浮点数不准确 https://www.php.net/manual/en/language.types.float.php我知道像这样的解决方案BCMath https://www.php.net/manual/en/book.bc.php and GMP https://www.php.net/manual/en/ref.gmp.php。我在本地测试了以下代码WAMP server和另一台服务器(使用Nginx):

$size = 0.0006;
$data = json_encode( array("size" => $size));
var_dump($data);

WAMP 上的输出:

string '{"size":0.0006}' (length=15)

另一台服务器上的输出:

string(31) "{"size":0.00059999999999999995}"

两台服务器上的 PHP 版本都是7.3。为什么我在 WAMP 上得到了预期的结果,而在我的托管服务器上却出现了一些问题?有什么配置可以修复吗?


您的 WAMP 输出不是由 PHP 本身生成的,而是由Xdebug https://xdebug.org/第三方扩展。进一步来说 https://xdebug.org/docs/display:

Xdebug 取代了 PHP 的 var_dump() 函数来显示变量。 Xdebug 的版本包括不同类型的不同颜色和 对数组元素/对象属性的数量进行限制, 最大深度和字符串长度。

除此之外,浮点值的隐式字符串转换的精度为可配置 https://www.php.net/manual/en/ini.core.php#ini.precision:

$size = 0.0006;
var_dump($size);
ini_set('precision', 18);
var_dump($size);
float(0.0006)
float(0.000599999999999999947)

如果是json_encode()转换是明确的,我们可以在manual https://php.net/json_encode:

编码受提供的选项影响,此外浮点值的编码取决于序列化精度 https://www.php.net/manual/en/ini.core.php#ini.serialize-precision.

$size = 0.0006;
echo json_encode( array("size" => $size)), PHP_EOL;
ini_set('serialize_precision', 18);
echo json_encode( array("size" => $size)), PHP_EOL;
{"size":0.0006}
{"size":0.000599999999999999947}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP - WAMP 和 Web 服务器上的浮点数精度差异 的相关文章

  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • 为什么 PHP 中不允许“传统”类型提示?

    刚刚发现类型提示 http php net manual en language oop5 typehinting phpPHP 中允许 但不适用于整数 字符串 布尔值或浮点数 为什么 PHP 不允许对整数 字符串等类型进行类型提示 从 P
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩
  • 包含包含文件的 php 文件

    这是目录结构 global php includes class bootstrap php includes init php plugins myplugin php 这是这些文件中的代码 start php require inclu
  • 如何在 WordPress 中按类别获取所有帖子

    我想在 WordPress 中按类别获取帖子 args array post type gt project postslist get posts args 0 gt WP Post 对象 ID gt 421 post author gt
  • jquery上传完成后重定向到新页面

    我正在尝试让这个 jquery 工具与我的网站一起使用以进行文件上传 https github com blueimp jQuery File Upload https github com blueimp jQuery File Uplo
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • phpinfo 说 php.ini 路径是 C:\Windows 但那里没有 php.ini

    我们正在尝试从 PHP5 切换到 PHP7 现在我们已经安装了 Apache 并且 PHP 可以运行了 然而 我们在php ini文件没有任何作用 Via phpinfo 我们意识到原因是Configuration File php ini
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • PHP 错误:“无法通过引用传递参数 2”

    我只是需要有关这个 PHP 错误的帮助 我不太明白 致命错误 无法在第 13 行 web stud openup inactivatesession php 中通过引用传递参数 2
  • magento成功页面变量

    我正在尝试捕获一些 magento 成功页面变量以传递给我们的广告公司 到目前为止 我已经得到了这个 但变量没有输出任何内容 数据需要采用以下格式 price1 price2 price3 qty1 qty2 qty3 sku1 sku2
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records

随机推荐

  • D 有 HTML 解析吗?

    我正在寻找 D 语言的 HTML 解析 如果可能的话 支持 XPath 我做了一些谷歌搜索 但没有运气 很难找到带有 D 关键字的解决方案 就像C 我说 C 谷歌说C On http www dsource org http www dso
  • 仅显示一周(开放时间,每周相同)

    我想知道是否可以只显示一周 使用此日历来显示商店的营业时间 So 我不想显示日期 仅显示日期名称 好的 我不想对当天进行着色 好的 我希望日历始终显示在同一周 gt 我不知道该怎么做 你有什么想法吗 可以这样做吗 多谢 如果您使用 goTo
  • 通过 PHP CURL POST 数据并重定向用户

    我们需要将用户重定向到某个 URL 并使用 PHP CURL 将一些数据发送到该 URL POST 与用户单击 HTML 表单并使用 POST 方法提交时完全相同 我们的代码是 data array Token gt test2 Redir
  • 在单独的行上返回 Redshift JSON 数组的元素

    我有一个 Redshift 表 如下所示 id metadata 1 pet dog country uk 2 pet cat 3 4 country germany education masters country belgium 所有
  • Dask 在 Groupby 上复制 Pandas 值

    我想做的是在 dask 中复制 panda 的值计数 idxmax 函数 因为我有很多数据 这是一个示例数据框 partner num cust id item id revw ratg num revw dt item qty 0 100
  • Mathematica:FindRoot 求公切线

    我问这个question https stackoverflow com questions 8592200 mathematica tangent of two curves不久前 这确实有助于达成解决方案 我已经找到了一种可以接受的方法
  • 使用 WCF 和同步框架通过 HTTP 同步 SQL Server 2008 数据库

    这里有人使用过 Sync Framework 并通过 WCF 端点进行同步吗 请分享代码示例或示例项目 我专门寻找离线场景 其中客户端上线只是为了从服务器获取更新 我执行了以下操作以使同步框架使用 WCF 与 SQL Server 2008
  • 为什么 Stream#toList 的默认实现看起来过于复杂/次优?

    查看实施情况Stream toList 我只是注意到它看起来是多么过于复杂和次优 就像上面的 javadoc 中提到的那样 这default大多数人不使用实现Stream然而 在我看来 实施情况可能会有所不同 来源 Accumulates
  • 是否有任何本地函数可以将 json 转换为 url 参数?

    我需要将 json 对象转换为 url 形式 例如 parameter 12 asd 1 我完成了这个 var data action actualiza resultado postID 1 gl 2 gl2 3 var string J
  • 更新@HostBinding Angular 4动画

    我正在尝试在 Angular 4 项目中工作的路线之间获取动画 但需要能够根据用户在应用程序中导航的方式更改动画的方向 translateX 我发现将进入和退出组件保留在 DOM 中的唯一方法是使用 void 状态 另外 我必须将动画绑定到
  • 使用超链接集成 UPI 后如何获得响应

    在我的 iOS 应用程序中 我需要接受用户的付款 我正在使用 UPI 来实现同样的目的 我已遵循 UPI 提供的以下文件 http www npci org in documents UPI Linking Specs ver 1 1 dr
  • 如何在 iOS 中从 Live Photo 获取视频

    我试图弄清楚 但找不到任何有用的信息 我只找到这个 PHAssetResourceManager defaultManager writeDataForAssetResource assetRes toFile fileURL option
  • Android导出签名应用程序包错误

    当我尝试导出 Google 地图的签名应用程序包时 我的 resvalue string xml 文件上出现此错误 我应该怎么办 app name is not translated in af am ar be bg ca cs da d
  • 获取父级及其所有子级的数组

    假设我有这样的数据 data id 1 parentId thisPostId topLevelId 1 text p comment p id 2 parentId 1 topLevelId 1 text p reply to comme
  • 无法解析:com.osbcp.cssparser:cssparser:1.5 HtmlSpanner-NightWhistler

    我综合了html扳手进入我的 Android 应用程序 我收到以下错误 无法解析 com osbcp cssparser cssparser 1 5 我该如何解决这个错误 感谢帮助 该库不在标准中Maven存储库 即Gradle用于解决依赖
  • 在 MySQL 中导入 CSV 数据时空整数字段的默认值

    我正在将 CSV 导入到 MySQL 表中LOAD DATA INFILE 表的字段之一存储邮政编码数据 我已在表结构中定义了该数据contributor zipcode INT 在 CSV 中 此字段有时为空 当我执行LOAD查询时 My
  • System.Diagnostics.Stopwatch 的准确度如何?

    有多准确系统 诊断 秒表 我正在尝试为不同的代码路径做一些指标 并且我需要它是准确的 我应该使用秒表还是有其他更准确的解决方案 有人告诉我 有时秒表会给出不正确的信息 我刚刚写了一篇文章 解释了如何进行测试设置才能使秒表获得高精度 优于 0
  • 下移工作目录中的文件夹

    我正在尝试直接在 R 中向下移动工作目录 例如 我有一个 foo bar 工作目录 我想移动到 foo bar 子文件夹 setwd Users foo bar getwd 1 Users foo bar setwd subfolder 然
  • 底图上没有绘制带有networkx的虚线

    我尝试用以下方法绘制虚线边缘networkx on a basemap线 一切都很好 除了style dotted 设置此标志后 没有任何更改 我仍然得到正常的实心边缘 有人知道我可以改变什么来在地图上得到虚线吗 我的错误在哪里 这是我的完
  • PHP - WAMP 和 Web 服务器上的浮点数精度差异

    我知道 php 浮点数不准确 https www php net manual en language types float php我知道像这样的解决方案BCMath https www php net manual en book bc