Cześć, mój kolega spytał się czemu jego skrypt w php z wykorzystaniem PHP się nie równa:
Wyechował pi(); i chciał porównać to tym prostym skrypcikiem:
<?php= pi();$pi == '3.14159265359'){'xxx';
Cześć, mój kolega spytał się czemu jego skrypt w php z wykorzystaniem PHP się nie równa:
Wyechował pi(); i chciał porównać to tym prostym skrypcikiem:
<?php= pi();$pi == '3.14159265359'){'xxx';
Bo pi tyle się nie równa… Nie wiem czy ma tu znaczenie to, że porównanie jest do formatu tekstowego a nie numerycznego i nie wiem też jak PHP się zachowuje w przypadku liczby pi bo jest to liczba niewymierna. Jeżeli chcecie robić takie porównania to musicie zaokrąglać je do któregoś miejsca po przecinku.
Może dlatego że @pi to pi o większej ilości miejsc po przecinku jest większe od tego z mniejsza ilością np. mamy 3,14 i 3,141 to te drugie jest większe
Wszerad dobrze radzi. Ograniczyć pi do iluś tam cyfr po przecinku
Przeczytaj ostrzeżenie („Floating point precision”):
http://www.php.net/manual/en/language.types.float.php
A ponadto:
albo:
<?php
$pi = pi();
if($pi =='3.141592653589793'){
echo 'xxx';
}
else {
echo 'O_O';
}
echo $pi;
?>
a nawet:
<?php
$pi = pi();
if($pi =='3.141592653589793099999999999999....'){
echo 'xxx';
}
else {
echo 'O_O';
}
echo $pi;
?>
(Na szesnastym miejscu po przecinku musi być cyfra<3)
A jak zrobić żeby wyświetlić całe PI w php?
PS. Spokojnie mam silne serwery, nie zamuli tak łatwo, jeden serwer ma 8GB RAM
A jak wyświetlić PI do 1000 miejsc po przecinku?
Proszę bardzo. Nie podaję algorytmu bo dosyć złożony i nie w php. Mój komputerek liczył to 0,1 sekundy. Przybliżenie liczby pi z 10000 cyfr po przecinku było liczone 46 sekund. Podobno przy wyznaczaniu trasy w lotach kosmicznych bierze się przybliżenie liczby pi właśnie z dokładnością do 1000 cyfr po przecinku.
3,14 15 92 65 35 89 79 32 38 46 26 43 38 32 79 50 28 84 19 71 69 39 93 75 10 58 20 97 49 44 59 23 07 81 64 06 28 62 08 99 86 28 03 48 25 34 21 17 06 79 82 14 80 86 51 32 82 30 66 47 09 38 44 60 95 50 58 22 31 72 53 59 40 81 28 48 11 17 45 02 84 10 27 01 93 85 21 10 55 59 64 46 22 94 89 54 93 03 81 96 44 28 81 09 75 66 59 33 44 61 28 47 56 48 23 37 86 78 31 65 27 12 01 90 91 45 64 85 66 92 34 60 34 86 10 45 43 26 64 82 13 39 36 07 26 02 49 14 12 73 72 45 87 00 66 06 31 55 88 17 48 81 52 09 20 96 28 29 25 40 91 71 53 64 36 78 92 59 03 60 01 13 30 53 05 48 82 04 66 52 13 84 14 69 51 94 15 11 60 94 33 05 72 70 36 57 59 59 19 53 09 21 86 11 73 81 93 26 11 79 31 05 11 85 48 07 44 62 37 99 62 74 95 67 35 18 85 75 27 24 89 12 27 93 81 83 01 19 49 12 98 33 67 33 62 44 06 56 64 30 86 02 13 94 94 63 95 22 47 37 19 07 02 17 98 60 94 37 02 77 05 39 21 71 76 29 31 76 75 23 84 67 48 18 46 76 69 40 51 32 00 05 68 12 71 45 26 35 60 82 77 85 77 13 42 75 77 89 60 91 73 63 71 78 72 14 68 44 09 01 22 49 53 43 01 46 54 95 85 37 10 50 79 22 79 68 92 58 92 35 42 01 99 56 11 21 29 02 19 60 86 40 34 41 81 59 81 36 29 77 47 71 30 99 60 51 87 07 21 13 49 99 99 98 37 29 78 04 99 51 05 97 31 73 28 16 09 63 18 59 50 24 45 94 55 34 69 08 30 26 42 52 23 08 25 33 44 68 50 35 26 19 31 18 81 71 01 00 03 13 78 38 75 28 86 58 75 33 20 83 81 42 06 17 17 76 69 14 73 03 59 82 53 49 04 28 75 54 68 73 11 59 56 28 63 88 23 53 78 75 93 75 19 57 78 18 57 78 05 32 17 12 26 80 66 13 00 19 27 87 66 11 19 59 09 21 64 20 19 89