Ben hala doğru sonuçlar elde edemezsiniz. Maksimum nedir. Ben mümkün olduğunca doğru olmasını istiyorsanız ondalık miktarı ben göstermesi gerekir?
(Kopyalayıp yapıştırılan ve test olmaya hazır) bazı kod:
// Test with 5 decimals
$a = 0.00001;
echo bcadd($a,$a,5) . '<br/>';
echo bcadd($a,$a,6) . '<br/>';
echo number_format(bcadd($a,$a,5),5) . '<br/>';
echo number_format(bcadd($a,$a,5),6) . '<br/>';
echo bcadd(0.00001,0.00001,20) . '<br/>';
echo number_format(bcadd($a,$a,20),5) . '<br/>';
echo number_format(bcadd($a,$a,20),21) . '<br/><br/>';
/* Output:
0.00000
0.000000
0.00000
0.000000
0.00000000000000000000
0.00000
0.000000000000000000000
*/
// Test with 4 decimals
$a = 0.0001;
echo bcadd($a,$a,5) . '<br/>';
echo bcadd($a,$a,6) . '<br/>';
echo number_format(bcadd($a,$a,5),5) . '<br/>';
echo number_format(bcadd($a,$a,5),6) . '<br/>';
echo bcadd(0.00001,0.00001,20) . '<br/>'; // wtf? this outputs 0 too?
echo number_format(bcadd($a,$a,20),5) . '<br/>';
echo number_format(bcadd($a,$a,20),21) . '<br/>';
/* Output:
0.00020
0.000200
0.00020
0.000200
0.00000000000000000000
0.00020
0.000200000000000000010
*/
Ben cevap 4 olduğunu anlaması gerekir?? Ama hala bir açıklama ile hattında bir sorun var
Düzenleme: Ben kimsenin benim testleri anladığını sanmıyorum. Ben yüzen yanlış olduğunu biliyorum. Ama bir şey! = 0.98990123 1, ve başka bir şey 1! = 0.0000. Ben bc * fonksiyonu hassas olarak 4 ayarlarsanız, 0.0000, (mükemmel bir cevap 1 olsaydı) en az 0,9899 değil almak için bekliyoruz. Bir şey 'sonsuz hassasiyet için mükemmel doğru değil' başka bir şey 'tamamen yararsız' olduğunu.
Düzenleme 2: @ Michael Borgwardt çözümü var