Potrzebuję dodawać, mnożyć i porównywać wartości walut w PHP i trzeba mieć pewność, że jest on dokładny do jednego centa.Najlepsza praktyka do pracy z wartościami walut w PHP?
Jednym ze sposobów jest przechowywanie wszystkiego w float, użyj rundy przed i po każdej operacji i epsilon maszyny umysłu przy porównywaniu dla równości. Dość nieporęczny imho.
Innym sposobem jest zapisanie całej zawartości jako centów w liczbach całkowitych, a także pamiętaj, aby konwertować tam iz powrotem w każdym momencie pracy z bazą danych (mysql, gdzie używam typu danych dziesiętnych). Inelegant i wiele pułapek błędów, imho.
Innym sposobem jest wymyślenie własnego "typu danych", zapisanie wszystkich wartości w ciągach znaków ("34.12") i utworzenie własnych matematycznych funkcji zastępowania. Ta funkcja przekształci wewnętrznie wartość na liczbę całkowitą, wykona obliczenia i ponownie wyświetli wynik łańcuchów. Zaskakująco skomplikowany, imho.
Moje pytanie: jaka jest najlepsza praktyka w pracy z wartościami walut w PHP? Dzięki!
To nie jest po prostu najlepsza praktyka i bardzo złe Rada. Proszę, za wszelką cenę, zamknąć funkcje, które działają z dowolnie precyzyjnymi funkcjami matematycznymi, ale proszę nie stosować się do powyższych rad. Najlepszą odpowiedzią jest Andrew Dunn. –