Laden...

Anzahl Nachkommastellen

Erstellt von mujo vor 18 Jahren Letzter Beitrag vor 17 Jahren 7.775 Views
M
mujo Themenstarter:in
15 Beiträge seit 2005
vor 18 Jahren
Anzahl Nachkommastellen

Hi all,

wie bekomme ich am schnellsten die anzahl der Nachkommastellen von einem double wert?

6.862 Beiträge seit 2003
vor 18 Jahren

ToString() und dann Länge von String - Index von Dezimaltrennzeichen.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo mujo,

wozu brauchst du denn das?. Da doubles unter endlicher Genauigkeit und unter Rundungsfehlern leiden, ist diese Angabe höchst fehlerbehaftet.

herbivore

PS: @Talla: Das gibt immer eins zuviel.

M
mujo Themenstarter:in
15 Beiträge seit 2005
vor 18 Jahren

Original von herbivore
Hallo mujo,

wozu brauchst du denn das?. Da doubles unter endlicher Genauigkeit und unter Rundungsfehlern leiden, ist diese Angabe höchst fehlerbehaftet.

herbivore

PS: @Talla: Das gibt immer eins zuviel.

Hi,

wie schauts mit decimal aus? Es geht mir eigentlich nur darum die Nachkomma stellen zu ermitteln....

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo mujo,

decimal ist ungefähr doppelt so genau wie double. Und es gibt keine Rundungsfehler bei der Umwandlung von der und in die binäre (Nachkomma-)Repräsentation, denn ein decimal wird intern als Integer-Zahl gespeichert und dann nur das Komma verschoben. Solange die Genauigkeit reicht, um die beteiligten Zahlen und die Zwischenergebnisse vollständig darzustellen, gibt es keinerlei Rundungsfehler. Aber sobald man periodische Zahlen oder irrationale Zahlen hat, reicht die Genauigkeit von vornherein nicht. Das prinzipelle Problem bleibt also bestehen.

Es geht mir eigentlich nur darum die Nachkomma stellen zu ermitteln....

Ja, aber das wird doch wohl einen Grund oder Zweck haben.

herbivore

6.862 Beiträge seit 2003
vor 18 Jahren

Original von herbivore
PS: @Talla: Das gibt immer eins zuviel.

Dann halt immer noch -1 und fertig 🙂

Baka wa shinanakya naoranai.

Mein XING Profil.

N
68 Beiträge seit 2006
vor 17 Jahren

Gibts da keine elegantere Möglichkeit?

Ich such noch mal ein projekt wo ich mich im Bereich KI üben kann

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Nopileos,

auch an dich die Frage:

wozu brauchst du denn das?. Da doubles unter endlicher Genauigkeit und unter Rundungsfehlern leiden, ist diese Angabe höchst fehlerbehaftet.

herbivore

N
68 Beiträge seit 2006
vor 17 Jahren

Für eine Klasse die mit Brüchen arbeitet bei initialisieren sollen alle Primitiven datentypen (außer char und string) überladen sein dazu gehört nunmal auch decimal, float und double, bei der Initialisierung soll der werd alls 10-hoch-anzahl der-nachkommastellen-stel dargestellt werden.

Ich such noch mal ein projekt wo ich mich im Bereich KI üben kann

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Nopileos,

hm, 10 hoch anzahl-der-nachkommastellen ist aber eine komische Darstellungsform, zumal wenn eine Zahl periodisch ist. Dann wäre das 10 hoch unendlich.

Meinst du vielleicht, dass die Zahlen immer in wissenschaftlicher Schreibweise dargestell werden soll? Also 250000 als 2.5E+005? Oder 0,025 als 2.5E-2? Das wäre dann:

String.Format ("{0:E}", mydouble);

herbivore

N
68 Beiträge seit 2006
vor 17 Jahren

nö fallst des periodisch ist wird die zahl als ((größe-der-periode-plus-1-hoch-zehn-mal-1/9)-minus-1/9)*9-stel dragestellt werden
also gibts jetzt eine elegantere art?
mir würden auch die nachkommastellen im binärsystem reichen!

Ich such noch mal ein projekt wo ich mich im Bereich KI üben kann

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Nopileos,

mit kommt das nach wie vor sehr komisch, wenn nicht gar unsinnig vor. Wie erkennst du denn die Periodizität?

Nehmen wir: 12,454545456454545456... Was, wenn der double nur 12,45454545645454545 darstellen kann, oder wenn sogar die erste 6 erst hinter dem Darstellungsbereich kommt 12,4545454545454545...454564545. Oder bei Rundungsfehlern: 0,333333333333334?

herbivore

N
68 Beiträge seit 2006
vor 17 Jahren

Beim rundungsfehler istes das pech des nutzers der dll. im nachhinein stell ich es auch lieber mit eine binär flieskomma zahl da, also gibt es eine möglichkeit?

Ich such noch mal ein projekt wo ich mich im Bereich KI üben kann

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Nopileos,

ich vermute, dass die Entwickler das Frameworks das für genauso unsinnig gehalten haben ich ich. Ich denke nicht, dass es dafür eine (bessere) Unterstützung gibt.

herbivore

N
68 Beiträge seit 2006
vor 17 Jahren

gut frag ich ander gibt es eine funktion wie bspw f(3434,123124E-12) = -12

Ich such noch mal ein projekt wo ich mich im Bereich KI üben kann

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Nopileos,

das ist ja nun wieder ganz was anderes. Da das e-12 sich erst durch die Darstellung als String ergibt, weil die Anzahl der Stellen in der Mantisse vor dem Komma scheinbar variabel sind, kann man diese Information auch nur aus der String-Darstellung ermitteln.

herbivore

B
1.529 Beiträge seit 2006
vor 17 Jahren
public int f( object value )
{
   return -12;
}