mysql decimal php,PHP中的MySQL DECIMAL处理

mysql decimal php,PHP中的MySQL DECIMAL处理如通常讨论的那样(例如Storing0.00001inMySQL),DECIMAL数据类型应用于需要精确度/正确性的字段,例如帐户余额.但是,我想知道PHP如何处理这些值,以及如果它们在内部以浮点数进行处理,那么从数据库读取这些值,进行一些计算并再次写回它们时是否仍然存在问题.如果是这样,我们如何才能迫使PHP保持精度?解决方法:该变量可能是最初在PHP中的字符串(从MySQL结果对象读取时…

大家好,又见面了,我是你们的朋友全栈君。

如通常讨论的那样(例如Storing 0.00001 in MySQL),DECIMAL数据类型应用于需要精确度/正确性的字段,例如帐户余额.

但是,我想知道PHP如何处理这些值,以及如果它们在内部以浮点数进行处理,那么从数据库读取这些值,进行一些计算并再次写回它们时是否仍然存在问题.如果是这样,我们如何才能迫使PHP保持精度?

解决方法:

该变量可能是最初在PHP中的字符串(从MySQL结果对象读取时).通常,不能依靠PHP的浮点数据类型来保持所需的精确十进制值.您应该使用像GMP这样的任意精度的数学库.(当获取结果对象的一行时,将DECIMAL列值传递给适当的构造函数,然后使用所使用的库提供的函数对其进行操作. )

要更深入:假设您有一个存储在数据库DECIMAL(6,4)列中的金额.您想将其提取到PHP中,以对其进行处理.您发出查询以获取该列.您将查询的第一行提取到关联数组中.假设该行的值为2.5674.您的数组现在类似于array(‘MyDecimal’=>’2.5674’)(数字显示为字符串).您(据我所知)使用gmp_init()将该字符串转换为GMP资源.现在,您可以使用其他GMP功能使用该数字进行数学运算.如果要存储GMP编号,则可以使用gmp_strval()将其转换回字符串(如果您正在使用可以处理GMP资源的数据库抽象层,则不必这样做).

标签:floating-point,precision,decimal,mysql,php

来源: https://codeday.me/bug/20191101/1986489.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160892.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Cloud微服务实战

    Spring Cloud微服务实战

    2022年3月12日
    60
  • MySQL数据库基础知识点总结

    MySQL数据库基础知识点总结1数据库简介数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写的方式对象数据进行管理更加的方便,快速,安全1.1作用对数据进行持久化的保存方便数据的存储和查询,速度快,安全,方便可以处理并发访问更加安全的权限管理访问机制1.2数据库类型1.3常见的数据库类型常见数据库类型分两大类,一类是关系型数据库。另一类是非关系型数据库。关系型数据库:MySQL,Oracle,P

    2022年8月20日
    8
  • 用Xshell连接虚拟机Linux「建议收藏」

    用Xshell连接虚拟机Linux「建议收藏」首先,要将虚拟机中的Linux系统设置为桥接模式。然后进一步确认虚拟机的ip地址跟本机地址在同一个网段(要ping的通)。具体操作如下:1、查看我本机的IP地址是:10.253.0.512、继续查看虚拟机中linux系统的IP地址是:10.253.0.91然后在windows上ping一下:可见完全是ping的通的。3、接下来配置Linux的

    2022年9月22日
    1
  • 配置JDK环境变量(详细图文教程)

    配置JDK环境变量(详细图文教程)配置JDK环境变量(详细图文教程)

    2022年7月17日
    15
  • 静态代码检查

    静态代码检查申请Let'sEncrypt永久免费SSL证书https://www.cnblogs.com/sage-blog/p/10302934.htmlIntellijIDEA使用check

    2022年7月2日
    25
  • 远程服务器虚拟显示器(Ubuntu 20.04 LTS)[通俗易懂]

    远程服务器虚拟显示器(Ubuntu 20.04 LTS)[通俗易懂]远程服务器虚拟显示器(Ubuntu20.04LTS)1.准备工作2.安装软件包3.修改配置文件4.卸载虚拟显示器1.准备工作安装sshsever并开启,确保虚拟显示器配置失败后,无法正常显示,仍可以通过ssh连接至服务器sudoapt-getinstallopenssh-server查看ssh服务已经开启,并可以远程ssh连接至服务器ps-e|grepssh测试远程连接2.安装软件包sudoapt-getinstall

    2022年8月21日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号