![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 146 Pomógł: 0 Dołączył: 15.01.2007 Ostrzeżenie: (60%) ![]() ![]() |
Nie wiem czy to cos pomoze ale moze nakieruje tok myslowy
![]() ------========----- 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 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 146 Pomógł: 0 Dołączył: 15.01.2007 Ostrzeżenie: (60%) ![]() ![]() |
W exelu i php jest to samo, cos tu z tym arkuszem masz zryte o0
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 06:36 |