Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z kalkulatorem, j.w
dRes123pl
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.05.2010

Ostrzeżenie: (0%)
-----


Czesc, stworzylem prosty kalkulator pol figur plaskich w php : www.polafigurplaskich.cba.pl i mam problem, poniewaz na moim komputerze wychodzi dobry wynik, a na innych wychodzi inaczej i tylko na moim jest dobrze .... co zrobic (IMG:style_emoticons/default/questionmark.gif) np. przy boku w kwadracie 285,752 powinno wyjsc 81654.205504(u mnie tak i na normalnym kalkulatorze) a innym wychodzi 81225

Ten post edytował dRes123pl 19.05.2010, 20:23:46
Go to the top of the page
+Quote Post
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Pokazać kod źródłowy plików, w których "źle wychodzi".
Go to the top of the page
+Quote Post
dRes123pl
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.05.2010

Ostrzeżenie: (0%)
-----


  1. <html>
  2. <body>
  3. <meta charset=windows-1250">
  4. <?
  5. $a=$_POST['a'];
  6. $pole=$a*$a;
  7. echo('Pole kwadratu wynosi '.$pole);
  8. echo(' mm/cm/dm/m/km&sup2;');
  9. ?><br>
  10. <a href="kwadrat.php">Wprowadź nowe dane</a><br>
  11. <a href="index.php">Wybierz inną figurę</a><br>
  12. </body>
  13. </meta>
  14. </html>
Go to the top of the page
+Quote Post
croc
post
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


A może chodzi o to, że podajesz w formularzu liczbę z przecinkiem zamiast z kropką? I wtedy skrypt ucina dalszą część, czyli 12,99 to dla niego 12, ale 12.99 to dla niego 12.99.
Go to the top of the page
+Quote Post
parzygnat
post
Post #5





Grupa: Zarejestrowani
Postów: 155
Pomógł: 6
Dołączył: 31.12.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Rzutuje Ci na int
zrób coś takiego i spróbuj czy zadziała:
  1. $a=(float)$_POST['a'];
  2. $pole=$a*$a;
Go to the top of the page
+Quote Post
dRes123pl
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.05.2010

Ostrzeżenie: (0%)
-----


a Tobie wychodzi dobrze ? bo ja znajomym pisalem ze maja kropke pisać, ale nie wiem czy mnie posluchali, ale pisali ze zrobili z kropką

@up tylko nie wiem czy tak sie dzieje tylko na kwadracie czy tez na innych figurach, moze na wszelki wypadek dac wszedzie ?


Ten post edytował dRes123pl 19.05.2010, 20:36:19
Go to the top of the page
+Quote Post
croc
post
Post #7





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Jestem pewien, że o to chodzi. Ludzie mają nawyki z Excela i dają przecinki. Sprawdziłem dla kwadratu o boku 0.5 i działa wyśmienicie.

EDIT

Sam floatval wiele tu nie da. Zrób tak:

  1. $a = floatval(str_replace(',', '.', $_POST['a']));


I znajomi będą mogli walić przecinki (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował croc 19.05.2010, 20:38:20
Go to the top of the page
+Quote Post
dRes123pl
post
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.05.2010

Ostrzeżenie: (0%)
-----


croc, a na 'duzych' liczbach Ci dobrze wychodzi (IMG:style_emoticons/default/questionmark.gif) najlepiej sprawdz ten bok co ja podałem w przykładzie, bo to jest na informatykę, niby mógłbym mu pokazac na malych liczbach, ale jak bedzie chcial sprawdzic czy sie zgadza na moim i na normalnym kalkulatorze to moze byc kiepsko
Go to the top of the page
+Quote Post
tehaha
post
Post #9





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


po linijce 5 dorzuć:
  1. $a = str_replace(',', '.', $a);
i powinno być ok
Go to the top of the page
+Quote Post
parzygnat
post
Post #10





Grupa: Zarejestrowani
Postów: 155
Pomógł: 6
Dołączył: 31.12.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Tak tu chodzi o kropke rzutowanie na float nic nie da jeżeli nie będzie kropki.
Możesz się przed tym zabezpieczyć np:
  1. $a = $_POST['a'];
  2. $a = str_replace(',','.',$a);


Ten post edytował parzygnat 19.05.2010, 20:41:08
Go to the top of the page
+Quote Post
croc
post
Post #11





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Widzę, że dyskusja wre (IMG:style_emoticons/default/smile.gif) Zobacz na mój poprzedni post, wyedytowałem go. Zrobisz pożyteczną rzecz jak połączysz floatval z str_replace.

I tak - na dużych liczbach działa prawidłowo. Daj klapsa znajomym (IMG:style_emoticons/default/smile.gif)

Ten post edytował croc 19.05.2010, 20:41:34
Go to the top of the page
+Quote Post
parzygnat
post
Post #12





Grupa: Zarejestrowani
Postów: 155
Pomógł: 6
Dołączył: 31.12.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Tak dzisiaj ochoczo każdy chce pomagać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dRes123pl
post
Post #13





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.05.2010

Ostrzeżenie: (0%)
-----


Dobra, dzieki, dalem wam pomogl, okazalo sie ze znajomi napisali przecinek, a jak im napisalem czy zrobili kropke to mi pisza ze tak (IMG:style_emoticons/default/winksmiley.jpg) ... jeszcze raz dzieki wszystkim za pomoc (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
croc
post
Post #14





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


No niestety, na polskim Windowsie separator na klawiaturze numerycznej to przecinek, a programistom to nie w smak. (IMG:style_emoticons/default/smile.gif) Fajnie, że pomogliśmy. Teraz możesz próbować ujednolicić ten system.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:38