witam,
Na konkurencyjnym forum odpowiedzi nie otrzymałem dlatego teraz próbuje tutaj, widocznie jeżeli w temacie jest słowo excel to każdy myśli że jest to banał i nie warto nawet czytać. Mój problem wyglada tak: Czy jest możliwość wyświetlania w excelu liczb zespolonych(tworzymy funkcją COMPLEX) z wybraną dokładnością? W wyniku działań na liczbach zespolonych (których dokładność wynosi 2 po przecinku) otrzymuje liczbę postaci np 9,23831499028927+25,1401365123542i, da rade wyświetlić to z mniejszą dokładnością?
dokładność liczb zespolonych w excelu
Rozpoczęty przez
spin86
, 30 12 2007 13:08
6 odpowiedzi w tym temacie
#1
Napisano 30 12 2007 - 13:08
#2
Napisano 30 12 2007 - 13:18
Zrobiłem coś takiego i zadziałało...
Oczywiście, można zrobić inne zaokrąglenie.
=COMPLEX(PI();4) = 3,14159265358979+4i
=COMPLEX(ZAOKR.DO.CAŁK(PI());4) = 3+4i
Oczywiście, można zrobić inne zaokrąglenie.
#3
Napisano 30 12 2007 - 14:00
Ok zgadza się, funkcja ZAOKR działa ale dla liczby rzeczywistej (jaką jest także liczba PI). Mi bardziej chodzi o liczbą zespoloną o dużej dokładności powstałą w wyniku jakiegoś działania np:
tworzymy liczbę:
i ją pierwiastkujemy (w moim przypadku komórka a1):
otrzymujemy:
1,51947383954562+1,05299608216912i
I dopiero dokładność tak powstałej liczby chce zmniejszyć
tworzymy liczbę:
=COMPLEX(1,2; 3,2)
i ją pierwiastkujemy (w moim przypadku komórka a1):
=IMSQRT(A1)
otrzymujemy:
1,51947383954562+1,05299608216912i
I dopiero dokładność tak powstałej liczby chce zmniejszyć
#4
Napisano 30 12 2007 - 14:43
Całym problemem jest to, że w wyniku otrzymujemy nie liczbę lecz tekst.
Ale zauważyłem, że pierwszy wynik ma zawsze taką samą ilość miejsc po przecinku.
Więc zastosowałem taki trick:
Sprawdzałem na kilku liczbach i działa prawidłowo z wyjątkiem zaokrąglania (nie zaokrągla bo to tekst).
Zdaję sobie sprawę, że nie jest to rozwiązanie... no... "eleganckie", ale może kogoś naprowadzi na lepsze...
Ale zauważyłem, że pierwszy wynik ma zawsze taką samą ilość miejsc po przecinku.
Więc zastosowałem taki trick:
w A5: =COMPLEX(1,2;3,2) => 1,2+3,2i w A6: =IMSQRT(A5) => 1,51947383954562+1,05299608216912i w A7: =LEWY(A6;5)&"+"&FRAGMENT.TEKSTU(A6;18;5)&"i" => 1,519+1,052i
Sprawdzałem na kilku liczbach i działa prawidłowo z wyjątkiem zaokrąglania (nie zaokrągla bo to tekst).
Zdaję sobie sprawę, że nie jest to rozwiązanie... no... "eleganckie", ale może kogoś naprowadzi na lepsze...
#5
Napisano 30 12 2007 - 16:48
Jakieś to rozwiązanie jest. Problem powstaje gdy ilość cyfr przed przecinkiem jest różna, czasem liczba 1-cyfrowa czasem 4-cyfrowa. W wyniku takiego działania otrzymuje wyniki typu np 1223,2+1,2432i i 1,9432-3000,9i. A trzeba przyznać że nie jest to zbyt ładne rozwiązanie. Pozatym u mnie nie zawasze "pierwszy" wynik ma taką samą ilośc miejsc, są to pojedyncze przypadki (kilka na 100) ale jednak.
#6
Napisano 30 12 2007 - 22:24
Zgadza się. No ale nic więcej chyba nie pomogę. "jakieś" rozwiązanie jest też rozwiązaniem...
#7
Napisano 03 01 2008 - 20:39
podaje moje rozwiązanie bo a nóż może ktoś będzie miał kiedyś podobny problem(wykorzystałem co prawda komórkę pomocniczą ale to i tak najlepsze rozwiązanie na jakie wpadłem, dzięki pierwszej odpowiedzi Jotgie`go):
przykładowo w komórce a2 mamy liczbę :9,23831499028927+25,1401365123542i
w innej komórce wpisujemy formułę: =COMPLEX(ZAOKR(IMREAL(a2);2);ZAOKR(IMAGINARY(a2);2);"i")
i już
przykładowo w komórce a2 mamy liczbę :9,23831499028927+25,1401365123542i
w innej komórce wpisujemy formułę: =COMPLEX(ZAOKR(IMREAL(a2);2);ZAOKR(IMAGINARY(a2);2);"i")
i już
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych