php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #76418 The scale is not set, but there are two decimal places.
Submitted: 2018-06-06 10:28 UTC Modified: 2018-06-08 02:55 UTC
From: zh9025 at qq dot com Assigned: cmb (profile)
Status: Not a bug Package: BC math related
PHP Version: 7.1.18 OS: CentOS Linux release 7.4.1708 (C
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: zh9025 at qq dot com
New email:
PHP Version: OS:

 

 [2018-06-06 10:28 UTC] zh9025 at qq dot com
Description:
------------
---
From manual page: http://www.php.net/function.bcmul
---


Test script:
---------------
<?php
// Test Url http://tb.besoft.top/bcmul.php 需要多次刷新 20%左右概率出现1
var_dump(bcmul(0.01, 100));


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-06-06 10:34 UTC] zh9025 at qq dot com
1.正常情况下 应该是1,而不是1.00
2.刷新多次结果还可能变成1
 [2018-06-06 10:36 UTC] spam2 at rhsoft dot net
please, this is an english bugtracker - i don't write german here too
 [2018-06-06 10:41 UTC] requinix@php.net
-Status: Open +Status: Feedback
 [2018-06-06 10:41 UTC] requinix@php.net
http://php.net/manual/zh/function.bcmul.php
> left_operand
> 字符串类型的左操作数.
> right_operand
> 字符串类型的右操作数.

Please try
  var_dump(bcmul("0.01", "100"));
 [2018-06-06 10:48 UTC] zh9025 at qq dot com
Test script:
---------------
<?php echo bcmul("0.01", 100);

<?php echo bcmul(0.01, 100);

Expected result:
----------------
1

Actual result:
--------------
1.00

Test link:
--------------
Refresh multiple times, and the result can also be 1
 [2018-06-06 13:26 UTC] zh9025 at qq dot com
-Summary: 高精度乘法运算一会有小数点 一会没有 +Summary: The scale is not set, but there are two decimal places. -Status: Feedback +Status: Open
 [2018-06-06 13:26 UTC] zh9025 at qq dot com
The scale is not set, but there are two decimal places.

Test script:
---------------
<?php echo bcmul("0.01", 100);

<?php echo bcmul(0.01, 100);

Expected result:
----------------
1

Actual result:
--------------
1.00

Test link:
--------------
http://tb.besoft.top/bcmul.php

Refresh multiple times, and the result can also be 1
 [2018-06-07 16:52 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2018-06-07 16:52 UTC] cmb@php.net
Please run without SourceGuardian, just to make sure it is not
related to this extension.
 [2018-06-07 16:52 UTC] cmb@php.net
Please run without SourceGuardian, just to make sure it is not
related to this extension.
 [2018-06-08 02:33 UTC] zh9025 at qq dot com
-Status: Feedback +Status: Assigned
 [2018-06-08 02:33 UTC] zh9025 at qq dot com
Thank you for your help, and it's really the reason for the SourceGuardian extension.
 [2018-06-08 02:34 UTC] zh9025 at qq dot com
-Status: Assigned +Status: Closed
 [2018-06-08 02:34 UTC] zh9025 at qq dot com
Thank you for your help, and it's really the reason for the SourceGuardian extension.
 [2018-06-08 02:55 UTC] requinix@php.net
-Status: Closed +Status: Not a bug
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 06:01:30 2024 UTC