首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用bcmath减法不能正常工作?

为什么使用bcmath减法不能正常工作?
EN

Stack Overflow用户
提问于 2011-07-04 18:43:44
回答 1查看 891关注 0票数 2

比方说我有

代码语言:javascript
复制
$foo = bcsub(bcdiv(1, 3, 20), 0.00001, 20);

它会给我返回0.33333333333333333333

如果我有

代码语言:javascript
复制
$foo = bcsub(bcdiv(1, 3, 20), 0.0001, 20);

它会给我返回0.33323333333333333332

如果我有

代码语言:javascript
复制
$foo = bcsub(0.333333333333333333, 0.00001, 20);

它会给我返回0.33333333333333331483

如果我有

代码语言:javascript
复制
$foo = bcsub(0.333333333333333333, 0.0001, 20);

它会给我返回0.33323333333333331482

那么为什么它不能正确地减去,它是浮点数的东西呢?但仅当bcdiv(1,3,20)时,它工作得很好

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-04 18:48:53

使用字符串而不是浮点数作为BC函数的参数:

代码语言:javascript
复制
$foo = bcsub(bcdiv("1", "3", "20"), "0.00001", "20");

如果你使用浮点型(如0.00001),PHP会将这个数字转换成浮点型,这是不精确的。如果您使用字符串(即"0.00001"),BC将转换为任意精度的数字,这是精确的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6570391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档