Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> noacja wykladnicza
1010
post
Post #1





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Jak zamienić liczbę ze zmiennej na zapis w notacji wykładniczej?
Go to the top of the page
+Quote Post
php programmer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


podaj konkretny przykład,
żeby wiadomo było o co ci chodzi

liczba_początkowa
liczba_zmodyfikowana
Go to the top of the page
+Quote Post
1010
post
Post #3





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


np w zmiennej mamy liczbe 4000 i zamienia to na 4 * 10^3
Go to the top of the page
+Quote Post
php programmer
post
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


hm ale to chyba nie każdą liczbe tak że da?
a jak przekształcisz liczbę 114 ?
Go to the top of the page
+Quote Post
1010
post
Post #5





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


1,14 * 10^2
Go to the top of the page
+Quote Post
php programmer
post
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


wiem jak wziąść wykładnik
wykładnik = ilość znaku twojej liczby minus jeden
np 12345 składa się z 5 znaków wieć bedzie 10^4

a dalej to już proste twoją liczbę 12345 dzielisz przez 10^4
i masz pierwszy człon czyli 1,2345
a więc w końcowym efekcie masz
1,2345 * 10^4

Edit: poprawka kodu

  1. <?php
  2. function Przeksztalcenie($liczba){
  3. $wykladnik = strlen($liczba)-1;
  4. $mnoz = pow(10,$wykladnik);
  5. $pierwszy_czlon = $liczba / $mnoz;
  6. return $pierwszy_czlon. ' * 10^'.$wykladnik;
  7. }
  8.  
  9. echo Przeksztalcenie(12345);
  10. ?>


Ten post edytował php programmer 31.10.2006, 23:20:29
Go to the top of the page
+Quote Post
1010
post
Post #7





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Dzięki bardzo... A jak taką operacje wykonać odwrotnie?
Go to the top of the page
+Quote Post
php programmer
post
Post #8





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


no to już wogóle żaden problem
  1. <?php
  2. $odwrtonie = $pierwszy_czlon * pow(10,$wykladnik);
  3. ?>


a jeśli masz to w stringu to musisz użyć dodatkowo wyr. reg do rozbicia na człony

tzn

  1. <?php
  2. $odwrotnie = ' 1,2345 * 10^4 ';
  3. ?>


poprzez preg_match wyciągasz ze stringa pierwszą 1,2345 i ostatnia część 4

i dopiero wtedy

  1. <?php
  2. $odwrtonie = $pierwszy_czlon * pow(10,$wykladnik);
  3. ?>


Ten post edytował php programmer 31.10.2006, 23:31:18
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


A ja stworzylem cos takiego
  1. <?php
  2.  
  3. $numbers = array( 1234, 1.02323, 123.223, 0.000123 );
  4.  
  5. foreach ( $numbers as $nr )
  6. {
  7. $number_in_scientific_format = sprintf( "%e", (float)$nr );
  8. list( $base, $exp ) = explode( "e", $number_in_scientific_format );
  9.  
  10. print( "$base * 10^$exp" . "<br />" );
  11. }
  12.  
  13. ?>
Go to the top of the page
+Quote Post
1010
post
Post #10





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


  1. <?php
  2. function Przeksztalcenie($liczba){
  3. $wykladnik = strlen($liczba)-1;
  4. $mnoz = pow(10,$wykladnik);
  5. $pierwszy_czlon = $liczba / $mnoz;
  6. return $pierwszy_czlon. ' * 10^'.$wykladnik;
  7. }
  8.  
  9. echo Przeksztalcenie(0.0000001);
  10. ?>


return: 1E-15 * 10^8

cos nie pasi...
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: 25.08.2025 - 16:26