理解php中的浮点数

2023-12-23

我知道这些问题可能会被很多人问到,但从我的阅读和测试来看,它让我有点困惑,而且我所做的很多阅读让我更加困惑,因为它非常复杂。

有些人似乎对简单的比较有问题,但我自己没有问题。

例如...

$num1 = 27.64;
$num2 = 27.64;

if ($num1 == $num2) {
    echo 'Good!';
} else {
    echo 'Bad!';
}

// Echo's "Good!"

...and

$num1 = 27.60;
$num2 = 27.6;

if ($num1 == $num2) {
    echo 'Good!';
} else {
    echo 'Bad!';
}

// Echo's Good

...and

$num1 = 27.60;
$num2 = 57.60;

if ($num1 <= $num2) {
    echo 'Good!';
} else {
    echo 'Bad!';
}

// Echo's Good

...and

$num1 = 25.00;
$num2 = 12.50 + 12.5;

if ($num1 == $num2) {
    echo 'Good!';
} else {
    echo 'Bad!';
}

// Echo's Good

然后我看到类似的页面http://patchlog.com/php/comparing-float-values-in-php/ http://patchlog.com/php/comparing-float-values-in-php/这似乎有简单的问题,但我不明白。

我只是想了解他的简单代码是如何遇到问题的,但我不同意我的代码。


实施例1

这些值将是相同的——您为每个变量分配相同的十进制文字。将其与此代码进行比较:

$num1 = 27.64;
$num2 = 10.0 + 2.88 + 2.88 + 2.88 + 9.0; //In decimal arithmetic adds to 27.64

if ($num1 == $num2) {
    echo 'Good!';
} else {
    echo 'Bad!';
}

// Echo's "Bad!"

$num2 看起来应该是 27.64,但它确实增加了类似 27.639999999999997015720509807579219341278076171875 的值(这就是我在我的机器上用 Visual C++ 进行计算时得到的结果)。 $num1 = 27.6400000000000005684341886080801486968994140625(在我的机器上),所以它们不同。

实施例2

后面的 0 没有区别。

实施例3

这些数字不在浮点“容差”范围内,因此当然会有所不同。

实施例4

12.5 可以精确地用浮点数表示,因此 12.5 + 12.5 也是如此(0.5 是 2^-1)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解php中的浮点数 的相关文章

  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • PHP 有效读取 csv 文件

    有几种使用 PHP 读取 CSV 文件的方法 我以前用过explode函数将每一行放入一个数组中 然后explode逗号并使用trim删除数据周围的任何引号 本来就很乱 PHP 5 现在有fgetcsv和 str getcsv 我猜这是这些
  • 两个浮点数相加

    我想计算两个 IEEE 754 二进制 64 数字的四舍五入之和 为此我编写了下面的 C99 程序 include
  • HTML 表单 POST 到 PHP 页面 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 好的 我创
  • 计算两个数字之间的差异

    我想计算两个给定数字之间的差异 例如 1 5 或 24 35 我必须将数组中的数字分开并写出它们之间的差异 如下所示 1 2 3 4 5 或 24 25 26 27 28 29 30 31 32 33 34 35 是否有任何 php 函数可
  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • 从外部 bash 设置环境变量

    我试图使用 PHP 从命令行 设置 bash 环境变量 但没有成功 buff array buff VARTESTKEY VARTESTVALUE buff export VARTESTKEY file put contents scrip
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • PHP 中的 Zip 流

    我有一个 PHP 脚本 可以动态创建 zip 文件并强制浏览器下载该 zip 文件 问题是 我可以直接将zip文件写入连接到用户浏览器的输出流 而不是先将其保存为服务器上的真实文件 然后发送文件吗 提前致谢 如果您的 Web 服务器运行的是

随机推荐

  • 如何在Tcl中安装软件包?

    我正在尝试安装critlib在我的机器上 http equi4 com critlib http equi4 com critlib 这样我就可以在 Tcl 中动态创建 zip 文件 问题是我不知道如何安装 Tcl 软件包 您是否有放置文件
  • 在 IIS7 静态内容集成模式中使用角色进行 ASP.NET 身份验证

    我正在试验IIS7中静态内容的集成身份验证模式 我按照本文中的说明进行操作 https web archive org web 20210612113955 https aspnet 4guysfromrolla com articles
  • BeautifulSoup 选择具有特定类的某些元素中的所有 href

    我正在尝试从中删除图像网站 我尝试使用 Scrapy 使用 Docker 和 scrapy slenium Scrapy 似乎不适用于 windows10 home 所以我现在尝试使用 Selenium Beautifulsoup 我正在将
  • 模板类中的 C++ 非模板方法

    是否可以在 cpp 文件的模板类 结构 中编写非模板方法的实现 我读到模板方法应该写在 h上 但我的方法不是模板方法 尽管它属于模板类 这是我的 h 中的代码 include
  • BottomNavigationView 在片段事务上滞后

    问题 我正在使用BottomNavigationView来自我的一项活动的 Android 设计支持库 以及每个导航项的片段 每次我在栏上选择一个项目时 我都会执行一个片段事务 如下面的代码片段 为了简洁起见 删除了代码的某些部分 priv
  • Callkit - 如果从后台开始通话则没有音频

    从 iOS 13 3 1 开始出现这种情况 在我的应用程序中 我使用 Callkit WebRTC 建立 VOIP 连接 我总是能够毫无问题地建立连接 但是 从 13 3 1 开始 如果应用程序不在前台 我将无法启动 Callkit 调用
  • 来自特定网卡的 UDP 多播

    我正在寻找一些网络专家来帮助我解决问题 我有很多计算机运行我的软件 该软件使用 UDP 多播 如果计算机仅连接到一个网络 网络 A 则此方法可以正常工作 我的计算机 也运行上述软件 将在端口 XXXX 上侦听多播 这台计算机有两个网卡 当我
  • 如何缓存 Spring Data JPA 投影

    我正在使用 Spring Data JPA 存储库运行 Spring Boot 1 5 1 我已经在我的用户存储库中添加了一个方法 该方法使用 JPA 投影 UserProfile 效果很好 我现在希望在我的服务层中缓存该方法的结果 该层应
  • 从 Apache Spark 中的架构获取数据类型列表

    我在 Spark Python 中有以下代码 用于从 DataFrame 的架构中获取名称列表 该代码工作正常 但如何获取数据类型列表 columnNames df schema names 例如 类似 columnTypes df sch
  • 使用 NAudio 在 C# 中播放 ohLibSpotify pcm 数据流

    我正在尝试播放从 ohLibSpotify c 库提供的原始 pcm 数据 https github com openhome ohLibSpotify https github com openhome ohLibSpotify 我在以下
  • extjs:如何在列渲染器中使用ajax调用?

    我现在得到的是这样的 renderer function value var ret var conn new Ext data Connection conn request method POST url rsdBackend para
  • SOAP XML WS-Security 签名验证

    我能够使用 WS Security 签名的证书来签署 SOAP XML 但我无法验证其签名 验证签名时会导致异常 我们将不胜感激 希望提供一些帮助来解决该问题 SOAP 封装的 WS Security 签名 https docs oracl
  • 单例的实例类型与类名?

    据我了解 instancetype向编译器声明该方法的返回类型与接收消息的类相同 传统上 我总是声明我的单例初始值设定项 并将类名显式设置为返回类型 interface MyClass NSObject MyClass sharedInst
  • 使用jquery在ul中添加li元素

    我尝试制作简单的待办事项列表 这是我的 html 代码
  • jQuery UI 对话框关闭时刷新父页面

    因此 每次关闭 jQuery UI 中的特定对话框时 我都希望刷新父页面 我怎样才能做到这一点 jQuery 代码 document ready function var dlg createTeam dialog title Create
  • 在类构造函数中实例化供应商类

    在我的 CakePHP 2 应用程序中 我有这样的供应商 我需要在我的控制器类中创建此供应商类的实例 所以我将在控制器的不同功能中使用该实例 App import Vendor fancyVendor array file gt fancy
  • Emacs 中的文本转语音

    我不是瞎子 我只是想有一种方法让我的 Windows 机器大声读取缓冲区的内容 以下是基本要求 读取任何英文文本缓冲区 随时暂停阅读并随时恢复 而不是当有人走进我的办公室时等待几分钟等待大缓冲区完成 调整播放时的读回速度 突出显示当前正在阅
  • 特征:矩阵到四元数和后面有不同的结果

    我使用 Eigen 库将矩阵转换为四元数 但是当我将其中一个矩阵转换为四元数并将其烧回时 它变成了另一个矩阵 即单位矩阵 我使用的旋转矩阵是从变换矩阵分解而来的 Eigen Matrix3f R3d R topLeftCorner lt 3
  • 如何使用 WPF 中的资源图标?

    我有一个作为资源嵌入的 ico 文件 构建操作设置为资源 我正在尝试创建一个 NotifyIcon 如何引用我的图标 notifyIcon new NotifyIcon notifyIcon Icon my icon file is cal
  • 理解php中的浮点数

    我知道这些问题可能会被很多人问到 但从我的阅读和测试来看 它让我有点困惑 而且我所做的很多阅读让我更加困惑 因为它非常复杂 有些人似乎对简单的比较有问题 但我自己没有问题 例如 num1 27 64 num2 27 64 if num1 n