我有一个简单的代码如下.

$amount = 447274.44882;

$rate = 0.00001;

echo floatNumber(bcmul($amount, $rate, 8), 8);

当应为4.47274449时输出0.00000000.如果我将汇率更改为0.0001,则它将输出正确的数字,任何高于4位小数的数字都将报告0.

我是在做错什么,还是这是已知的限制?如果是这样的话,似乎是一个很大的问题.

解决方法:

如果使用默认设置将0.00001强制转换为字符串(如果从bcmul开始输入expects strings,这将导致bcmul出现这种情况):

var_dump( (string)0.00001 );

string(6) "1.0E-5"

它没有明确记录,但是当面对无效输入时,bcmath函数显然返回强制转换为零:

var_dump( bcadd('Hello', 'world!', 8) );

var_dump( bcadd('33', 'Foo', 8) );

var_dump( bcdiv('33', 'Foo', 8) );

string(10) "0.00000000"

string(11) "33.00000000"

Warning: bcdiv(): Division by zero

NULL

任意精度库的整体思想是克服以2为基础的算术和固定大小存储的限制.因此,您需要:

var_dump( bcmul('447274.44882', '0.00001', 8) );

string(10) "4.47274448"

使用100位数字进行数学运算非常好,但对于简单的舍入却没有特别的帮助.实际上,该扩展根本不会四舍五入,只是将其截断:

var_dump( bcmul('20.01', '1.444', 3) );

var_dump( bcmul('20.01', '1.444', 2) );

var_dump( bcmul('20.01', '1.444', 1) );

var_dump( bcmul('20.01', '1.444', 0) );

string(6) "28.894"

string(5) "28.89"

string(4) "28.8"

string(2) "28"

标签:bcmath,php

来源: https://codeday.me/bug/20191122/2057418.html

php-4.4.0,PHP-Bcmul报告0相关推荐

  1. android应用兼容报告,手机资讯导报:华为发布国内首份Android7.0应用兼容报告

    科技.数码.互联网新闻如今都成为了大众所关注的热点了,因为在我们的生活当中如今已经是处处与这些相关了,不论是手机也好,电脑也好,又或者是智能手表也好,与之都相关,那么今天小编也是为大家来推荐一篇关于互 ...

  2. 【报告分享】阿里妈妈:熬夜真相-0点经济报告.pdf(附下载链接)

    今天给大家分享的报告是阿里妈妈于2019年12月份发布的<熬夜真相-0点经济报告.pdf>,该报告包含四大部分:1.深夜时分,谁在淘宝买买买?2."夜猫子"偏爱哪些颜值 ...

  3. C#6.0,C#7.0新特性

    C#6.0,C#7.0新特性 C#6.0新特性 Auto-Property enhancements(自动属性增强) Read-only auto-properties (真正的只读属性) Auto- ...

  4. js框架jquery实现的幸运大转盘抽奖程序代码,兼容多种浏览器(Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Chrome)

    博客目录 js框架jquery实现的幸运大转盘抽奖程序代码 实现功能截图 系统功能 使用技术 代码 写在最后 js框架jquery实现的幸运大转盘抽奖程序代码 本系统实现了一个幸运转盘抽奖,兼容多种浏 ...

  5. 绿盟rsasnx3_铭冠网安绿盟RSASNX3-S远程安全评估系统 V6.0(NSFOCUS RSAS V6.0)

    原标题:铭冠网安绿盟RSASNX3-S远程安全评估系统 V6.0(NSFOCUS RSAS V6.0) 引擎模块(RSNX3-S-C-NDE-01):RSAS NX3-S-C引擎模块-1U,标准配置提 ...

  6. 小米android7.0,小米安卓7.0

    由于小米这两年推出了数十款机型,所以安卓核心的升级相对缓慢,近日小米公布了已经适配安卓7.0和7.1的14款机型. 目前小米旗下已有多款机型适配了基于Android N的MIUI8 系统,今天MIUI ...

  7. 从DXN V1.0到DXN V2.0,联想凌拓升级的不仅仅是产品

    2021年3月,全自研联想ThinkSystem DXN企业级分布式存储系统首次发布,2022年4月,发布ThinkSystem DXN V2.0版本.这就是联想凌拓的速度. 三年来,联想凌拓一直专注 ...

  8. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

  9. mysql 8.0 docker_Docker安装MySQL8.0的实现方法

    环境:MacOS_Cetalina_10.15.1.Mysql8.0.18.Docker_2.0.0.3 1.docker仓库搜索mysql docker search mysql 2.docker仓 ...

最新文章

  1. (C++)输入输出字符矩阵(二维字符数组)的三种方法
  2. Theme,skin-----asp.net2.0 new technolog
  3. 出来工作五年的经历总结(五年前,你在干嘛?)
  4. CAN设备多机联网之总线容抗注意事项
  5. vue中v-model原理
  6. [转]Oracle update用例
  7. android windows 上JNI编程
  8. java time 赋予时间_java.time.OffsetTime
  9. [201511118]发生系统错误86.txt
  10. 上班一个月,后悔当初着急入职的选择了
  11. 利用jieba进行中文分词并进行词频统计
  12. 《西游记第一百零一回》第一百零一回观(转)
  13. llvm Pass简单实例
  14. Manjaro Linux安装QQ和微信
  15. 如何设置电脑的保护色?
  16. 贝叶斯神经网络 BNN
  17. Chrome 鼠标左击右击无效解决办法
  18. %3chtml%3e%3c html,403禁止%3Chtml%3E%3Chead%3E%3Cmeta笨
  19. 基于硬件的C(C++)语言程序设计教程5:更改Atmel Studio的语言设置
  20. Python生成九宫格图片

热门文章

  1. javaEE注解@Decorator/@Delegate/@Observes/@Produces/@Alternative
  2. Java中的 <T extends Comparable<? super T>>
  3. 类和对象实战 —— 日期类的实现
  4. 密码(至少六位且至少有一个数字和字母)和邮箱校验
  5. [COCI2021-2022#1] 题解
  6. 用Altium Designer制作电路板学习笔记(一)
  7. linux根据内容搜索指定文件
  8. python pyc文件是啥_Python的.pyc文件是什么
  9. 拉转直播将直播源再分发解决方案-虚拟的直播支持RTMP/HLS/FLV流输出
  10. 【泛型】泛型的作用与定义