1--TEST-- 2BcMath\Number sub string by operator 3--EXTENSIONS-- 4bcmath 5--FILE-- 6<?php 7 8$values = [ 9 100, 10 '20', 11 '0.01', 12 '0.40', 13]; 14 15foreach ($values as $value1) { 16 $num1 = new BcMath\Number($value1); 17 18 foreach ($values as $value2) { 19 echo "{$value1} - {$value2}\n"; 20 $ret = $num1 - ((string) $value2); 21 $ret2 = ((string) $value1) - (new BcMath\Number($value2)); 22 if ($ret->compare($ret2) !== 0) { 23 echo "Result is incorrect.\n"; 24 } 25 var_dump($ret); 26 echo "\n"; 27 } 28} 29?> 30--EXPECT-- 31100 - 100 32object(BcMath\Number)#2 (2) { 33 ["value"]=> 34 string(1) "0" 35 ["scale"]=> 36 int(0) 37} 38 39100 - 20 40object(BcMath\Number)#3 (2) { 41 ["value"]=> 42 string(2) "80" 43 ["scale"]=> 44 int(0) 45} 46 47100 - 0.01 48object(BcMath\Number)#4 (2) { 49 ["value"]=> 50 string(5) "99.99" 51 ["scale"]=> 52 int(2) 53} 54 55100 - 0.40 56object(BcMath\Number)#5 (2) { 57 ["value"]=> 58 string(5) "99.60" 59 ["scale"]=> 60 int(2) 61} 62 6320 - 100 64object(BcMath\Number)#1 (2) { 65 ["value"]=> 66 string(3) "-80" 67 ["scale"]=> 68 int(0) 69} 70 7120 - 20 72object(BcMath\Number)#3 (2) { 73 ["value"]=> 74 string(1) "0" 75 ["scale"]=> 76 int(0) 77} 78 7920 - 0.01 80object(BcMath\Number)#4 (2) { 81 ["value"]=> 82 string(5) "19.99" 83 ["scale"]=> 84 int(2) 85} 86 8720 - 0.40 88object(BcMath\Number)#5 (2) { 89 ["value"]=> 90 string(5) "19.60" 91 ["scale"]=> 92 int(2) 93} 94 950.01 - 100 96object(BcMath\Number)#2 (2) { 97 ["value"]=> 98 string(6) "-99.99" 99 ["scale"]=> 100 int(2) 101} 102 1030.01 - 20 104object(BcMath\Number)#3 (2) { 105 ["value"]=> 106 string(6) "-19.99" 107 ["scale"]=> 108 int(2) 109} 110 1110.01 - 0.01 112object(BcMath\Number)#4 (2) { 113 ["value"]=> 114 string(4) "0.00" 115 ["scale"]=> 116 int(2) 117} 118 1190.01 - 0.40 120object(BcMath\Number)#5 (2) { 121 ["value"]=> 122 string(5) "-0.39" 123 ["scale"]=> 124 int(2) 125} 126 1270.40 - 100 128object(BcMath\Number)#1 (2) { 129 ["value"]=> 130 string(6) "-99.60" 131 ["scale"]=> 132 int(2) 133} 134 1350.40 - 20 136object(BcMath\Number)#3 (2) { 137 ["value"]=> 138 string(6) "-19.60" 139 ["scale"]=> 140 int(2) 141} 142 1430.40 - 0.01 144object(BcMath\Number)#4 (2) { 145 ["value"]=> 146 string(4) "0.39" 147 ["scale"]=> 148 int(2) 149} 150 1510.40 - 0.40 152object(BcMath\Number)#5 (2) { 153 ["value"]=> 154 string(4) "0.00" 155 ["scale"]=> 156 int(2) 157} 158