WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zahlenformat für ein 30stellige Zahl

 

samuray
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 05.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2010, 13:20     Titel: Zahlenformat für ein 30stellige Zahl
  Antworten mit Zitat      
Hallo,

ich habe eine 30stellige Zufallszahl generiert, die ich 'normal' darstellen lassen möchte, z.B.

215367410298654370214938214672

stattdessen gibt mir matlab folgendes aus:

2.15367...e+30

aus. Ich habs mal mit dem Format Befehl versucht, hat aber nichts gebracht,
da mit format long nur bis 15 Stellen funktioniert.

Vielen Dank und freundliche Grüße
samuray
_________________

mehr Käse = mehr Löcher
mehr Löcher = weniger Käse
weniger Käse = mehr Käse
Private Nachricht senden Benutzer-Profile anzeigen


Linus
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 30.08.10
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.09.2010, 13:52     Titel:
  Antworten mit Zitat      
Versuch mal
Code:

fprintf('%.30g\n'), meineZahl)
 

oder
Code:

fprintf('%.30f\n'), meineZahl)
 

_________________

RWTH - Mindstorms NXT Toolbox - free & open source
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.09.2010, 14:10     Titel:
  Antworten mit Zitat      
Hallo

Computer kann solche Zahlen nicht handhaben.
Bei 64 Bit Rechner kann maximal
Code:

log10(2^64) % (=19.2659)
 

19 Stellige Zahlen dargestellt werden.

z.b Integer kann nur bis zu dieser Zahl (Ab Matlab 2010b) darstellen:
Code:

size(sprintf('%.30g',intmax('uint64')),2)
 


in DOUBLE wird deine Zahl einfach abgeschnitten, weil

aus 64 Bit wird ein Bit für Vorzeichen reserviert, 11 Bit für Exponent
52 Bit für Mantisse,

Daraus folgt dass maximal 16 Stellige Zahlen können genau dargestellt werden:
Code:

log10(2^53) % (=15.9546)
 

http://en.wikipedia.org/wiki/Double.....ion_floating-point_format

Hier der Beweis:
Code:

sprintf('%.30g',215367410298654370214938214672)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
samuray
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 05.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2010, 14:51     Titel:
  Antworten mit Zitat      
Hallo,

@ denny: tatsächlich wird da ja was abgeschnitten. Danke für den Hinweis!

@ all: Gibt es noch andere Programme, die mit einem 'Haus-PC' Zufallszahlen generieren und darstellen können?

Vielen Dank!
samuray
_________________

mehr Käse = mehr Löcher
mehr Löcher = weniger Käse
weniger Käse = mehr Käse
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.