![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam małe pytanie odnośnie funkcji printf. Zauważyłem, że jest mało precyzyjny dla liczb o dużej ilości zer po przecinku. Mam taki kod:
Wyświetla mi: 2.45400000000000018119 Zastanawia mnie ten fakt, bo uczę się php cały czas i nie wiem dla czego tak się dzieje. Dziękuje i pozdrawiam ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
liczby zmiennoprzecinkowe - w pierwszych wynikach będziesz miał wszystko o tym czym one są, jak działają i dlaczego nie reprezentują dokładnych wartości.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
To urok liczb zmiennoprzecinkowych. W systemie dwójkowym nie da się niektórych liczb zapisać tak prosto, jak w systemie dziesiętnym. Tak jak liczba PI ma nieskończone rozwinięcie i podajemy tylko przybliżoną wartość, tak np. liczba 2.454 w systemie dwójkowym ma nieskończenie rozwinięcie, pisane zerami i jedynkami. Wtedy podawane jest jak najbliższe przybliżenie w systemie dwójkowym. Jeżeli przy liczbie PI podałbyś, żeby skrypt pisał 20 cyfr po przecinku, wypisałby je. Tutaj jest tak samo. Eksperymentalnie spóbuj zapisać sobie kilka liczb z miejscami po przecinku (1.3, 1.7, 1.9) w systemie dwójkowym i zobaczysz, że wcale nie jest tak prosto te liczby przedstawić. Dojdziesz tylko do największego przybliżenia, ale dokładnie taką liczbę nie zawsze się da zapisać.
Ten post edytował franki01 16.07.2012, 12:58:46 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 06:55 |