2016-08-31 5 views
3

Ich habe gelernt, dass 0.1 nicht genau als Fließkommazahl dargestellt werden kann. Das Lehrbuchargument war, dass 0.1 nicht als eine Art binäre wissenschaftliche Notation geschrieben werden kann, obwohl ich nie sicher gewesen bin, wie Leute beweisen, dass dieses Argument ist. In Verbindung damit ist meine Frage jetztKann 42 präzise als Fließkomma dargestellt werden?

Kann 42 genau als eine Gleitkommazahl dargestellt werden?

Sagen wir diskutieren das IEEE-754 binary64 Format.

+0

Wenn ich mich richtig erinnere, ist das Problem mit dem Dezimalteil, dass es nur angenähert werden kann mit einer Kombination von 1/2, 1/4, 1/8, 1/16, 1/32, ..., 1/(2^n), die nicht genau 0,1 erhalten kann. Aber für ganze Zahlen sollte es kein Problem geben. – jonhopkins

Antwort

3

Nun, ein Integer-Wert klein genug, um Gleitkomma der Mantisse (42 in Ihrem Fall) zu passen kann

42 (decimal) == 101010 (binary) 

Auf der Klausel genau dargestellt werden, 1/10nicht genau dargestellt werden:

0.1 (decimal) == 0.0001100110011001100... (binary) 

da 0.1 decimal ein binärer periodischer Bruch ist

+0

@zell: '42' ist klein genug (weniger als 52 Bit), um' doppelte' Mantisse zu passen: https://en.wikipedia.org/wiki/Double-precision_floating-point_format. Sie können * 0,1 als '1 * 10^-1' darstellen und sowohl' 1' als auch '-1' darstellen - es ist die Idee von' dezimal' –

+0

Sehr klar. Danke vielmals! – zell

Verwandte Themen