Warum schreibt eine auf 1 Stelle gerundete Zahl immer noch mit vielen Ziffern nach Excel.Eine Variante abrunden
Zum Beispiel:
dim myvar as variant
dim mysingle as single
dim myrange as range
mysingle = 4567.23494376
myvar = round(mysingle,1)
myrange = "A1"
myrange.value = myvar
Auch wenn ich myvar
ich schreibe, die auf eine Stelle gerundet wurde Zelle A1, obwohl die Zelle 4567,2 zeigt, auf die Zelle klicken, zeigt den gesamten Wert mit allen Ziffern rechts von der Mantisse in der Formelleiste.
Sollte ich dieses Verhalten erwarten?
Ja und Nein .. es hängt davon ab https://support.microsoft.com/en-us/help/214118/how-to-correc-rounding-errors-in-floating-point-arithmetic – Slai
Dieser Code ist syntaktisch falsch. 'myrange =" A1 "' funktioniert nicht, während 'myrange' als' Range' 'DIM' ist. Und da 'Excel' Gleitkommazahlen in' Double'-Genauigkeit verwendet, sollten Sie 'Single' in VBA nicht für' Excel' verwenden. –
Ja. Wenn Sie das Single '4567.2' in ein Double-Objekt umwandeln (so verwendet Excel Zahlen), lautet der Wert' 4567.2001953125', was Sie in der Zelle sehen. Sie können dies sehen mit: 'Debug.Print myvar, CDbl (myvar)' –