Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mnożenie liczb
Noddie
post 13.09.2007, 22:50:19
Post #1





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

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


Witam

pytanie może i trywialne ale...

chodzi o to, że mnożąc dwie liczby
105.6785 * 85368.00

1. w excelu
wynik: 90 216,44

2. w php
wynik: 9021562.188

Czy Wiecie czemu tak się dzieje? Przerabiam formularz z excela na formularz w php jednak mam problem z otrzymaniem tych samych wyników.
Czy da się doprowadzić do takiej sytuacji kiedy wyniki bedą się zgadzały co do joty? Proszę o odpowiedź sprawa jest dosyć pilna.
Z góry dziękuję za wszelką pomoc

pozdrawiam
noddie
Go to the top of the page
+Quote Post
Kisiol_Ent
post 14.09.2007, 00:53:22
Post #2





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 15.01.2007

Ostrzeżenie: (60%)
XXX--


Nie wiem czy to cos pomoze ale moze nakieruje tok myslowy tongue.gif


------========-----
z: http://rudy.mif.pg.gda.pl/~bogdro/linux/linux05.html
Typy danych

Zanim zaczniemy cokolwiek robić, trzeba wiedzieć, na czym ten cały koprocesor operuje.
Oprócz liczb całkowitych, FPU operuje na liczbach ułamkowych różnej precyzji:

Pojedyncza precyzja. Liczby takie zajmują po 32 bity (4 bajty) i ich wartość maksymalna wynosi ok. 1039 (10^39). Znane są programistom języka C jako "float".

Podwójna precyzja. 64 bity (8 bajtów), max = ok. 10409 (10^409). W języku C są znane jako "double"

Rozszerzona precyzja. 80 bitów (10 bajtów), max = ok. 104930 (10^4930). W języku C są to "long double"

Jak widać, ilości bitów są oczywiście skończone. Więc nie każdą liczbę rzeczywistą da się dokładnie zapisać w postaci binarnej. Na przykład, jedna dziesiąta (0.1) zapisana dwójkowo jest ułamkiem nieskończonym okresowym! Poza tym, to, czego nas uczyli na matematyce, np. oczywista równość: a+(b-a)=b nie musi być prawdą w świecie ułamków w procesorze ze względu na brak precyzji!

---====--

wiec se tak mysle z ten Excel dobrze liczy bo to program w koncu do liczenia
a php nie, wiec tu by byla jakas specjalna biblioteka potrzebna do liczb, ale ja sie na tym nieznam o0
Go to the top of the page
+Quote Post
Sedziwoj
post 14.09.2007, 08:42:00
Post #3





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(Noddie @ 13.09.2007, 23:50:19 ) *
chodzi o to, że mnożąc dwie liczby
105.6785 * 85368.00
1. w excelu
wynik: 90 216,44
2. w php
wynik: 9021562.188


No i php dobrze liczy, chyba sobie gdzieś przecinek przesunąłeś.

A tak swoją drogą co to ma wspólnego z OOP?


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Noddie
post 14.09.2007, 10:34:29
Post #4





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

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


witam

Dziekuje za próbę pomocy:).
Do "Sedziwoj" niestety u mnie excel i php nie pokazuja tych samych wynikow. Sprawdzałem u siebie kalukatorem z windowsa i wynik z klalulatora zgadza sie z wynikiem z php. Pracuje na laptopie amilo pro fujitsu siemens v2055. Czyzby procesor? Czy znacie może jakieś biblioteki do php do pracy na liczbach, które mogłby teoretycznie pomóc? Prosze o odpowiedź.

pozdrawiam
noddie

Ten post edytował Noddie 14.09.2007, 10:35:02
Go to the top of the page
+Quote Post
Sedziwoj
post 14.09.2007, 10:58:20
Post #5





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@Noddie
Mnożenie to mnożenie, nie może dawać różnych wyników w zależności od programu. Chyba że Excel ma źle zaimplemenotwane mnożenie, ale stawiam że jest coś czego nie bierzesz pod uwagę. Mi w OpenOffice dobrze mnoży. Przepisz te liczby do nowego arkusza i je wymnóż, zapewne da wynik taki jak w PHP.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Noddie
post 14.09.2007, 11:04:50
Post #6





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

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


@Sedziwoj

masz racje open office daje ten sam wynik. To czemu MS Office 2003 (excel) liczy inaczej? Jeżeli ktoś ma jakąś koncepcje dlaczego tak się dzieje niech się podzieli.

pozdrawiam
noddie
Go to the top of the page
+Quote Post
Sedziwoj
post 14.09.2007, 11:06:58
Post #7





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@Noddie
A sprawdziłeś w M. Office tak ja mówiłem w nowiutkim dokumencie i _z_palca_ wpisanymi wartościami oraz formułą?


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Noddie
post 14.09.2007, 12:14:43
Post #8





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

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


@Sedziwoj

w nowym ms excel wynik zgadza się. Jednak w dalszym ciągu nie wiem dlaczego gdy uruchomie dokument excel w, którym jest formularz i wprowdze dane wyniki mi sie nie zgadzają. Sprawdzałem i nie ma tam zastosowanych żadnych funkcji formatujących dane wyjściowe.


pozdrawiam
noddie

Ten post edytował Noddie 14.09.2007, 12:22:42
Go to the top of the page
+Quote Post
Sedziwoj
post 14.09.2007, 12:50:08
Post #9





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Sprawa sprowadza się do Excela, a w tym już Ci nie pomogę.
Bo jest to liczone inaczej niż proste mnożenia, musi coś jeszcze być robione i jak chcesz aby to powtórzyć w PHP musisz to znaleźć.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Kisiol_Ent
post 14.09.2007, 13:54:37
Post #10





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 15.01.2007

Ostrzeżenie: (60%)
XXX--


W exelu i php jest to samo, cos tu z tym arkuszem masz zryte o0
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 06:36