Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak przechwycić okres ułamka, How?
eai
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Mam sobie ułamek dziesiętny okresowy:

23.61709709709...

I teraz jak za pomocą php przechwycić wartość która się powtarza,
w tym przykładzie jest to 709??

//Potrzebuje tego aby zamienic dziesietny na zwykły
Dzieki Algorytm zamiany ułamka okresowego na zwykły, moge obliczyc z liczby 1.3333333 ze jest to string 4/3

Chyba ze znacie jakis sposob ze mam ulamek i chce zamienic go na postac ulamka zwyklego jako string.

Ten post edytował eai 13.06.2007, 19:33:51
Go to the top of the page
+Quote Post
Tibod
post
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

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


Wyrażenia regularne. Było wiele razy.
Go to the top of the page
+Quote Post
eai
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


szukałem... nie znalazłem
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


  1. <?php
  2.  
  3.  
  4. $ulamekOkresowy = '23.617096096096';
  5. //$ulamekOkresowy = '23.6170960961';
  6. //$ulamekOkresowy = '1.3333333333333';
  7. //$ulamekOkresowy = '1.434343434343';
  8. //$ulamekOkresowy = '1.4343434343434';
  9. //$ulamekOkresowy = '1.54343434343434';
  10. //$ulamekOkresowy = bcdiv( 4, 3, 10 );
  11. //$ulamekOkresowy = bcdiv( 1234, 15, 10 );
  12.  
  13.  
  14. if( preg_match( '/.[0-9]*?([0-9]+?)1+([0-9]*)$/', $ulamekOkresowy, $okres ) )
  15. {
  16. if( ( $okres[2] != '' ) && strpos( $okres[1], $okres[2] ) !== 0 ) {
  17. echo( "<b>{$ulamekOkresowy}</b> nie jest ułamkiem okresowym" );
  18. }
  19. else
  20. {
  21. $ulamekOkresowy = str_replace( strstr( $ulamekOkresowy, $okres[1] ), "({$okres[1]})", $ulamekOkresowy );
  22.  
  23. echo( "Okres: <b>{$okres[1]}</b><br>" );
  24. echo( "Ułamek okresowy: <b>{$ulamekOkresowy}</b>" );
  25. }
  26. }
  27. else {
  28. echo( "<b>{$ulamekOkresowy}</b> nie jest ułamkiem okresowym" );
  29. }
  30.  
  31. ?>



Ten kod powinien sobie poradzić z większością ułamków okresowych. Wymaga on jednak używania Binary Calculatora do wykonywania działań matematycznych, ponieważ zwykłe floaty są tylko przybliżoną wartością dzielenia.

Ten post edytował Kicok 14.06.2007, 11:12:13
Go to the top of the page
+Quote Post
Black-Berry
post
Post #5





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


a może takie coś pomoże:

http://www.matematyka.pl/viewtopic.php?t=847
Go to the top of the page
+Quote Post
eai
post
Post #6





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Black-Berry, to wiem pisałem wyżej.
http://pl.wikipedia.org/wiki/U%C5%82amek_d..._na_zwyk.C5.82y
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: 24.12.2025 - 11:46