![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Czymiasto Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ciężko wyjaśnić w temacie co ja cche ale mam problem z sytulacja po wpisaniu wartości (liczby np. 49) zeby mozna bylo automatycznie wygenerowac tą liczbe słownie to jest dziwne ale mi potrzebne czy ktos moze powiedziec jak cos takiego zrobic. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 2 Dołączył: 20.08.2004 Skąd: Warszawa Grochów Ostrzeżenie: (0%) ![]() ![]() |
Na przyklad tak (może długo, ale działa):
1. to jest skrypt dla kwot, ale można go zmodyfikować 2. możesz includować ten plik do skryptu php, a potem wywołać funkcję np. tak: czy odwrotnie z tym 0 i 1 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował rolling_stone 28.08.2004, 16:50:18 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
A co gdy?
Proponuję zapoznać się z klasą Numbers_Words z pakietu PEAR znajdź na google.pl
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 2 Dołączył: 20.08.2004 Skąd: Warszawa Grochów Ostrzeżenie: (0%) ![]() ![]() |
Cytat(talee @ 2004-08-28 17:13:35) A co gdy?
Raczej nic (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , bo gdy robiłem ten skrypt raczej kwota miliona złotych nie była mi potrzebna (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Ale dzięki za tę klasę, gdybym o niej wiedział wcześniej zaoszczędziłbym parę godzin (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Klasa Numbers_Words z pakietu PEAR jest OK, ale czasem skrypt wymaga "pełnej przenośności" na dowolny server, w każdej chwili.
Przy instalacji nowej klasy należy zainstalować pakiet PEAR na danym serverze, no i potem klasę Number_Words. I jeśli się o tym zapomni, skrypt się "wywala", bo nie zainstalowano klasy... Czyli taki kodzik rolling'a się jednak przyda (dzięki, miałem coś takiego zrobić u siebie, ale nie miałem czasu - to fajnie, że jednak czasem ktoś sie dzieli swoimi rozwiązaniami). Co z tego, że do tysiąca, w końcu można to szybko rozbudować dalej na setki tysięcy... a i ceny raczej oscylują własnie w tych granicach. Można ewentulnie dodać warunek, że jak > 1000 to dawać gwiazdki na returnie i już. Bo... właśnie, jest mały bug: Mam zmienną $suma, co jest typu double (wzięte z mysql) i mimo, że jest np. 14.50 to i tak funkcja "miele" i nic... Bo za dużo "cyferek" przed przecinkiem czy jakoś tak. To samo się zawiesza własnie przy dużych sumach. Wrzucałem taką zmienną do w/w skryptu i kicha: echo Kwota_Slownie($suma,1); i mielił... Ale znalazłem prosty sposób (wręcz "debilny"): Przy function Kwota_Slownie ($kwota,$typ) $kwota_kopia = $kwota*100/100; i już, sprawa załatwiona ;-) [OT] W ogóle, z typem double, zmienneprzecinkowym jest kupa problemów, bo 0 nie zawsze równa się 0 (problem z zaokrąglaniem, dokładność po przecinku...), ale to raczej zupełnie inny temat. Bo po latach całkiem przypadkiem znalazłem taki bug i teraz jak porównuję dwie liczby double to przedtem je przez sprintf odpowiednio "kształtuję'. Nie mówiąc o zaokrągleniach. Tam też te liczby potrafią się dziwnie zachowywać. Pozdr. Ten post edytował DrOOcik 10.09.2004, 22:47:47 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 7.09.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Numbers_Words jest praktycznie niezależne od PEAR, oprócz metody raiseError. Wystarczy // * 2 i po kłopocie.
Zabija Nazwa_Liczby pod kątem wydajności i nie tylko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Odnośnie double wystarczy zastosować rzutowanie (Type Casting). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(talee @ 2004-09-10 21:45:35) Numbers_Words jest praktycznie niezależne od PEAR, oprócz metody raiseError. Wystarczy // * 2 i po kłopocie. Zabija Nazwa_Liczby pod kątem wydajności i nie tylko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Odnośnie double wystarczy zastosować rzutowanie (Type Casting). ...Odnośnie double wystarczy zastosować rzutowanie (Type Casting)... Nie bardzo rozumiem. Do jakiego typu mam rzutować? Double to double. Chodzi mi o ograniczoną zmiennoprzecinkową do np. 2 miejsc po przecinku. Float nieco ma ograniczoną dokładność, ale zawsze to zbyt dużo. Pozdr. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:05 |