为什么使用 number_format() 我的数值会发生变化?

2024-03-20

下面的代码给了我两个不同的输出:

$number = '1562798794365432135246';
echo $number; 
echo number_format($number);

谁能解释一下吗?

编辑:忘了提及,上面给了我“1562798794365432135246 1,562,798,794,365,432,233,984”。请注意,最后六位数字完全不同,没有明显的原因(我要求它做的只是插入千位分隔符)。


number_format(), 正如 PHP 手册中所述 http://php.net/manual/en/function.number-format.php,将浮点数转换为包含数千个逗号组的字符串。

$number = '1562798794365432135246';
var_dump($number); // string(22) "1562798794365432135246"
var_dump(number_format($number)); // string(29) "1,562,798,794,365,432,233,984" 

如果您尝试将字符串转换为整数,可以这样做:

$number = (int) $number;

但是,请小心,因为 PHP 中可能的最大整数值是2147483647在 32 位系统上和9223372036854775807在 64 位系统上。如果您尝试在 32 位系统上将像上面这样的字符串转换为 int,您将分配$number to 2147483647而不是你想要的价值!

The number_format()函数需要一个float作为一个论点,它也有类似的问题。当您将字符串作为参数传递给number_format(),它在内部转换为浮点数。浮点数比整数稍微复杂一些。浮点数不像整数值那样具有硬上限,而是逐渐丢失精确在最低有效数字中,使最后几个位置不正确。

因此,不幸的是,如果您需要像这样格式化长字符串,您可能需要编写自己的函数。如果您只需要在数千个位置添加逗号,这应该很容易 - 只需使用strlen http://www.php.net/manual/en/function.strlen.php and substr http://php.net/manual/en/function.substr.php从字符串末尾获取每组三个字符,并创建一个中间有逗号的新字符串。

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

为什么使用 number_format() 我的数值会发生变化? 的相关文章

  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • Nginx 安全链接模块不适用于 php 文件,但适用于静态文件

    我在用http nginx org en docs http ngx http secure link module html http nginx org en docs http ngx http secure link module
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已
  • 加载视图 - codeigniter 错误

    我是 codeigniter 的新手 我正在做一个菜单 所以我将所有链接不放在同一个主文件中 以免一直重复 我的代码是 在main php中 main agregar gt Agregar span a href Modificar a s
  • $_POST 最大数组大小

    我有一个非常大的表单 有 gt 1000 个元素 它们已经嵌套在表单 html 结构中 foreach from result item item tr td td tr
  • PHP 添加 1 个月至今

    我有一个返回 1 个月前的 url 的函数 我想显示当前选定的月份 但我不能使用简单的当前月份 因为当用户单击 1 个月前的链接时 选定的月份将发生变化并且不是当前月份 因此 函数返回 August 2012 如何制作可以增加 1 个月时间
  • 从 PHP 访问 JavaScript 变量

    我需要访问一个JavaScript变量与PHP 这是我当前正在尝试的代码的精简版本 该版本不起作用 我对 JavaScript 和 PHP 都是新手 所以我非常感谢任何建议 UPDATE 好吧 我想我过于简化了 我想做的是创建一个表单 提交
  • 如何让 CodeIgniter 接受“查询字符串”URL?

    根据 CI 的文档 CodeIgniter 使用基于分段的方法 例如 example com my group 如果我想找到一个特定的组 id 5 我可以访问 example com my group 5 并在控制器中定义 function
  • count() 参数必须是一个数组或一个在 Laravel 中实现 countable 的对象

    这是这里的代码 protected function credentials Request request admin admin where email request gt email gt first if count admin
  • php脚本阻止直接访问

    我正在使用 ajax 从 php 脚本 例如 cost php 获取值 并且我知道直接访问它并获取该值会很容易 我什至在同一个脚本 cost php 上运行 cron 作业 所以如果我使用以下命令 cron 作业将无法工作 if empty
  • 在应用程序上按下类似按钮时自动刷新时间线页面?

    在时间轴发布到页面上之前 当用户在页面上按下 点赞 按钮时 页面会自行刷新 现在 启用时间线后 如果您访问应用程序并按右上角的类似按钮 页面不会自行刷新 并且应用程序不会识别用户 喜欢 该页面 当用户按下 喜欢 按钮时 是否有一种方法或事件
  • 无法将包含数据的大型 CSV 文件转换为 mysql 数据库[重复]

    这个问题在这里已经有答案了 如何将大型文本文件转换为mysql数据库 文件大小3GB 1100万行 文件中的每一行都是这样的 1303179444 20 5811 Ahmed Al Emam male ahmed e alemam ahme
  • 如何使用 Shopify API 将商品添加到购物车

    我正在使用 Shopify API 开发自定义网络应用程序 这里的想法是使用应用程序作为独家店面 只需向 Shopify API 发出请求 我已在我的 Shopify 帐户中设置了一个私人应用程序来执行此操作 我从 api 提取产品没有问题
  • PHP登录然后重定向

    我使用以下代码将用户登录到一系列安全页面 我需要将每个用户在提交后重定向到适当的页面 我想知道需要采取哪些步骤来选出三个登录级别 管理员 特殊 用户 if isset SESSION username function check logi
  • 扩展 Codeigniter Exceptions 类以添加自定义方法

    我创建了一个新方法来处理 401 apache 错误 我的核心类扩展了 CI 核心类 但是当我调用方法名称时 我收到此消息 致命错误 调用未定义的函数show 401 in G Path application controllers lo
  • PHP Imagick - setTextEncoding() 函数不起作用

    我正在尝试在 Imagick 对象上添加一些文本 但是我使用 setTextEncoding 函数 它仍然不起作用 draw new ImagickDraw draw gt setTextEncoding utf 8 draw gt set
  • Laravel 中的 SQL 运算符是什么?

    我正在查看 Laravel 的源代码 发现了很多 Eloquent 的 SQL 运算符 我想知道其中一些是什么以及如何使用它们 不幸的是我没有找到任何文档 这是我找到的运营商vendor laravel framework src Illu
  • 限制传出 PHP+curl 请求的速率

    有没有办法限制 有延迟 向外部服务器发出 PHP curl 请求的速率 以便每秒只有 n 个请求 PHP 在 Fastcgi 模式下使用 因此无法使用睡眠 是的 有curl 多重处理程序 您可以使用 OOP 方式以 OOP 方式完成此操作这
  • Jpgraph:如何在php中设置组条形柱形图的标签

    这是我的 jpgraph 演示代码
  • 根据产品类别自定义购物车总计和结帐总计文本

    我想根据产品类别 或其他一些逻辑 自定义购物车和结帐订单汇总表中的文本 例如 对于 总计 文本 参见图片 如果购物车包含名为 杂货 的类别中的产品 那么我希望订单摘要中的文本显示为 总计估计 文本 参见图片以下 如果购物车不包含任何杂货 那

随机推荐

  • c#:动作无与伦比?

    我正在尝试比较两个操作 与 的比较总是返回 false 就像 Equals 方法一样 即使它是同一个实例 我的问题是 这真的不可能还是我做错了 干杯 交流电 你做错了 如果我相信你 当你说 即使它是同一个实例 时 那么以下代码通过执行LIN
  • 我可以通过编程方式推导出 C++ dll 使用的调用约定吗?

    想象一下 您想要编写一个程序来测试 c dll 文件中的函数 您应该允许用户选择一个 dll 我们假设我们正在讨论 c dll 他应该能够获得 dll 导出的所有函数的列表 然后 用户应该能够从列表中选择一个函数名称 手动输入参数列表 参数
  • conda:从基本/根环境中删除所有已安装的软件包

    TL DR 如何删除所有已安装的软件包base 我在我的计算机中安装了一堆机器学习包base康达环境 我现在创建了一个ml机器学习环境 并希望重置我的base环境 删除安装在那里的所有软件包 我试过了 activate base conda
  • 实现 Serialized 接口的 Java 类

    我需要一个实现可序列化的类的列表 您还能告诉我什么样的类实现了该接口吗 在Java API中 大多数类都实现了Serialized here http java sun com javase 6 docs api java io class
  • 为文本添加背景颜色,但段落行之间留有空格

    我想知道 CSS 是否可以做一些事情 基本上我想使用 html css 在图像的 RHS 上重新创建文本 但目前我正在获取图像的 LHS HTML div div p This is an example of what I have p
  • 如何在php中编写json文件作为数据源?

    我有一些这样的数据 name abc adr bcd partners 101 name xyz com prices 1001 description Single Room amount 125 from 2012 10 12
  • 在不同条件下更新sequelize中的多行

    我正在尝试对 postgres 数据库中的行执行带有sequelize 的更新命令 我需要能够使用相同的值更新具有不同条件的多行 例如 假设我有一个包含以下字段的用户表 ID 名 姓 Gender Location 创建于 假设 我在此表中
  • rstudio - 是否可以在后台运行代码

    关于 RStudio 的问题 假设我在控制台中运行代码 gt code1 假使 假设code1 在控制台上不打印任何内容 但是code1 以上需要一个小时才能完成 我想在等待的同时做点别的事code1 是否可以 有没有类似的函数runInB
  • 为什么我会收到“找不到所请求的资源”。当访问简单的喷涂路线时?

    我尝试了一个简单的喷雾示例应用程序 但无法访问路线 我将示例源代码上传到了 github 但该示例源代码不起作用 喷雾 Tomcat 示例 https github com avidanyum spray tomcat example gi
  • 左排除加入续集

    我有两张表 其中一张表有另一张表的 ID 1 1 关系 所以像 EventFeedback somePrimaryKey userEventID UserEvent userEventID Sequelize 的关系定义为 models U
  • 在 Windows 10 上无法查看 Robomongo 中的集合

    我在互联网上彻底搜索但几乎找不到任何东西 我已经在 Windows 10 上安装了 MongoDB 3 2 0 和 Robomongo 0 8 5 安装后我能够成功启动 MongoDB 作为服务 之后 我在成功运行的 DBRestore e
  • Javascript 中两个字符串之间的网络效率差异

    我有一个网络应用程序 其中客户端编辑器正在编辑服务器端已知的非常大的文本 客户可以对此文本进行任何类型的修改 什么是最网络效率高如何以服务器理解的方式传输结果差异 另外 由于这将发生在客户端 Javascript 我也希望它 快 或者至少不
  • 无法从 Firebase 上的存储引用获取 URI

    我正在尝试获取存储在 Firebase 存储中的图像 URI 以便使用另一种方法对其进行处理 我正在使用以下内容 FirebaseStorage storage FirebaseStorage getInstance StorageRefe
  • 并行运行子进程

    我有一个 python 脚本 它必须调用某个应用程序 3 次 这些调用应该是并行的 因为它们需要几个小时才能完成并且彼此不依赖 但他们的脚本应该停止 直到所有脚本都完成 然后做一些清理工作 这是一些代码 do some stuff for
  • 重新安装 Android studio 会导致我的 Google Maps API 无法在我的应用程序中显示吗?

    我创建了一个利用 Google Maps API 的应用程序 我总是通过将其副本保存在外部驱动器上来备份我的应用程序 我最近重新安装了 Windows 并且不得不重新安装 Android Studio 当我导入保存的应用程序项目并运行它时
  • jQuery 禁用链接直到页面加载

    我有一个附加到链接的 jquery 弹出窗口 如果单击链接时页面未完全加载 即 js 文件 它将在浏览器窗口中打开 而不是弹出窗口 我正在考虑禁用 隐藏链接 直到加载页面 处理这种情况的最佳实践是什么 您有任何代码示例吗 首先将链接放在 d
  • 如何动态添加新值以选择 jira 中的列表字段或使用插件

    这是我的用例 1 我有一个 客户名称 文本字段和 所有客户 单选列表 2 问题解决后 我想选择 客户名称 中存在的值 并希望添加到 所有客户 中 如果要添加的值已存在于 所有客户 中 我就能够实现此目标 但我想用新值填充 所有客户 字段 如
  • Dragula JS通过点击事件从一个列表移动到另一个列表

    我使用 Dragula JS 进行拖放功能 并且我还希望可以选择通过单击鼠标来来回移动列表中的元素 而不会失去拖放功能 我该如何实现这一点 所以我单击元素 1 它将移动到列表中 我从该列表中将其单击回来 它就会向后移动 就是这个想法 如果有
  • Oracle 日期差值获取年数

    有没有办法计算日期之间的年数 不知道如何在考虑跳跃和不考虑什么的情况下做到这一点 是否可以在 SELECT 中执行 IF 语句 Thanks I d use months between 可能与floor select floor mont
  • 为什么使用 number_format() 我的数值会发生变化?

    下面的代码给了我两个不同的输出 number 1562798794365432135246 echo number echo number format number 谁能解释一下吗 编辑 忘了提及 上面给了我 15627987943654