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)
上一篇 2022年7月17日 上午7:36
下一篇 2022年7月17日 上午7:36


相关推荐

  • 麦克风声源定位原理_基于麦克风阵列的声源定位算法之GCC-PHAT

    麦克风声源定位原理_基于麦克风阵列的声源定位算法之GCC-PHAT目前基于麦克风阵列的声源定位方法大致可以分为三类:基于最大输出功率的可控波束形成技术、基于高分辨率谱图估计技术和基于声音时间差(time-delayestimation,TDE)的声源定位技术。基于TDE的算法核心在于对传播时延的准确估计,一般通过对麦克风间信号做互相关处理得到。进一步获得声源位置信息,可以通过简单的延时求和、几何计算或是直接利用互相关结果进行可控功率响应搜索等方法。这类算法实现…

    2026年2月13日
    5
  • php正则或者,PHP 正则表达式

    php正则或者,PHP 正则表达式PHP 正则表达式一 正则表达式简介正则表达式是用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找和替换操作 目前为止 我们前面所用过的精确 文本 匹配也是一种正则表达式 在 PHP 中 正则表达式一般由正则字符和一些特殊字符 类似于通配符 联合构成的一个文本模式的程序性描述 在 PHP 中 正则表达式有三个作用 1 匹配 常用于从字符串中析取信息 2 用新文本代替匹配文本

    2026年3月19日
    1
  • Json交互处理_stata交互项检验

    Json交互处理_stata交互项检验Json交互处理JSON简介JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在JavaScript语言中,一切都是对象。因此,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。看看他

    2022年10月15日
    4
  • 关于&0x80

    关于&0x80一些关于 windows 相关的书 书中提到扫描码的概念 扫描码的最低 7 为 0 6 位 是描述码值 而最高位 7 位 就描述该键是否被按下了 所以要想知道该键是否被按下就必须与 0x80 相与 例如 GetKeyState VK UP amp 0x80 或 KeyStateBuff DIK ESCAPE amp 0x80 同时 在 ANSIC 标准中

    2026年3月17日
    2
  • Windows端口占用及关闭

    Windows端口占用及关闭1 打开 dos 命令窗口开始 gt 运行 gt cmd 或者是 window R 组合键 调出命令窗口 2 查看端口使用情况查看被占用端口对应的 PID 输入命令 netstat aon findstr 8016 回车 记下最后一位数字 即 PID 这里是 14843 明确占用程序继续输入 tasklist findstr 1484 回车 查看是哪个进程或者程序占用了 8016 端口 结果是 javaw exe 还有谷歌 不用关也可以的 因为我在调测 4 杀掉进程结束该进程 在任务管理

    2026年3月20日
    2
  • 在TIM客户端删除被管理员解散的群组会话

    在TIM客户端删除被管理员解散的群组会话编者:李国帅qq:9611153微信lgs9611153时间:2020.6.1背景原因:TIM客户端会保留曾经参与过的会话,即便是会话的对话方,参与的群组已经不存在,会话和消息也不会移除,除非从本地删除。如果不想保留,就需要对TIM的逻辑进行处理。对于群组,如果群组被解散,可以在收到解散通知时,把群组会话移除。如果用户不在线时群组被解散,该如何做呢?想到并验证确实可用的方法:查询当前用户所在群组,删除那些过期的本地群组。背景问题流程:所需资源:Andr.

    2022年5月19日
    43

发表回复

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

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