WinFuture-Forum.de: Korrektes Berechnen Von Double Werten - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Korrektes Berechnen Von Double Werten


#1 Mitglied ist offline   wiseguy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 23
  • Beigetreten: 15. März 06
  • Reputation: 0

geschrieben 18. April 2006 - 14:35

Hallo

Ich habe eine Matrix aus verschiedenen gegebenen Werten erstellen wollen.
Beispiel Werte:
double * werte;
werte[0] = 1;
werte[1] = 2;
werte[2] = 3;
werte[3] = 4.387654;


mit der Schleife
for (iz=0; iz<=nl; iz++) {
  for (is=0; is<=nl; is++) {
	matrix[iz][is] = matrix[iz][iz] + matrix[is][is];
	matrix[is][iz] = matrix[iz][iz] + matrix[is][is];
  }
}

sollen die Werte in die Matrix eingetragen werden. (iz = Index Zeile | is = Index Spalte)

Solange die Werte keine Kommazahlen sind (wie bei 0-2) geht das so auch. Aber wenn Kommazahlen berechnet werden (3) dann werden gerundete Werte in die Matrix geschrieben. Und das soll nicht sein.

Was mache ich hier falsch?

mfg
0

Anzeige



#2 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.448
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 18. April 2006 - 16:34

was ist denn werte für ein typ?
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#3 Mitglied ist offline   wiseguy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 23
  • Beigetreten: 15. März 06
  • Reputation: 0

geschrieben 18. April 2006 - 19:24

"Werte" sind, wie oben angegeben, double Werte. Oder gibts da noch ne Unterscheidung?
0

#4 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.448
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 18. April 2006 - 20:30

ich meinte die variablendeklaration, weil wenn du schreibst x=4 dann wird 4 als integer genommen und nicht als double, jedenfalls ist das bei java so, ist ja so ähnlich wie c.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#5 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 18. April 2006 - 21:42

"double x=4" ist äquivalent zu "double x=(double)4" bzw. zu "double x=4.0";
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#6 Mitglied ist offline   wiseguy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 23
  • Beigetreten: 15. März 06
  • Reputation: 0

geschrieben 19. April 2006 - 08:00

Genau, die Werte sind einfach so im Quellcode angegeben:

mit "double * Werte;" werden diesen Arrays double Werte zugeteilt. Und dann mit "werte[x] = 0.1728;" oder "werte[x] = 3;" sind diese Zahlen double Zahlen. Aber wenn ich sie nun berechne und in meine Matrix übernehme, werden alle Zahlen gerundet. (die Matrix ist aber ebenfals mit "double ** matrix;" Zahlen vom Typ double definiert)

Woran liegt das?

mfg
0

#7 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 19. April 2006 - 15:38

Und was genau sind Doubles in deiner Programmiersprache? Mit welcher Präzision wird denn gerundet?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#8 Mitglied ist offline   wiseguy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 23
  • Beigetreten: 15. März 06
  • Reputation: 0

geschrieben 19. April 2006 - 16:31

Sorry - ich hatte die ganze Zeit als Formatangabe "%.f" angegeben und darum sind die Werte ab 5 aufgerundet und sonst abgerundet worden.

Jetzt ist es so, wie ich es haben will.

mfg
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0