Dodawanie dwóch rożnych typów zmiennych

0

Witam,

mam zmienną typu integer32 oraz array typu integer64.

Gdzie raz dziennie int32 będzie kopiowane do:

int64[1] = int32 - dzienna statystyka
int64[0] = int64[1] + int32 - całościowa statystyka

problem jest taki że przy tej całościowej stytystyce wychodzą mi jakieś dziwne cyfry (np: -9223372036854775808) przy dodawaniu małych liczb.
Podejrzewam że problem jest przy dodawaniu dwóch różnych typów zmiennych.
Jako że kiedyś całościowa statystyka będzie duzą liczbą chce to zrobić na int64 lub jeszcze lepiej uint64.

W rzeczywistości wygląda to następująco:


	var statistics = new Array(1);
	var Log   = new UaNode(adress+".Statistic_Log");

	var Counter		= new UaNode(adress+".Counter");

	statistics [0] = Counter.value + Log.value[0];						
	statistics [1] = Counter.value										

	Log.value = statistics;


2

Chyba sobie zły język wybrałeś do takich operacji :D

0

Zmuszony jestem to w tym języku zrobić :(

0

mam zmienną typu integer32 oraz array typu integer64.

Tzn. jak ją deklarujesz? Bo z tego, co wrzuciłeś w kodzie nie widać, żebyś używał Int32Array czy czegoś innego, co pozwoliłoby cię pracować na takich liczbach w JavaScript.

problem jest taki że przy tej całościowej stytystyce wychodzą mi jakieś dziwne cyfry (np: -9223372036854775808) przy dodawaniu małych liczb.

Co to są małe liczby? Konkretnie? I czemu ci wychodzą dziwne liczby? Z czego to wynika? W jaki sposób liczby, którymi operujesz, są trzymane w pamięci komputera? I co się stanie jak je dodasz?

Podejrzewam że problem jest przy dodawaniu dwóch różnych typów zmiennych.

A ja podejrzewam, że "typy" w ogóle dla komputera nie istnieją (jeśli mówimy o liczbach), a istnieją tylko jedynki i zera (przynajmniej to wyniosłem z nauki C++ kiedyś).

Aczkolwiek owszem, typowanie też może czasem namieszać: 2 + "2" w JS da w wyniku "22" (bo dodamy liczbę do stringa, i zamieni się to na stringa), ale tak jak opisujesz problem, to mam wrażenie, że to raczej inna sytuacja, bardziej z reprezentacją liczb w komputerze (czyli ciąg zer i jedynek).

1 użytkowników online, w tym zalogowanych: 0, gości: 1