2017-04-05 1 views
-6

kann jemand den CodeWas .1f ist, bedeutet in android

double partialradius = Math.cos(.1f/divide); 

Ich möchte wissen, erklären, was .1f Mittel ist, ist es 0,1?

+1

'float' Literal mit Wert' 0.1'. Siehe [Java Language Specification §3.10.2. Gleitkommaliterale] (https://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.2): * Ein Fließkomma-Literal ist vom Typ 'float' 'wenn es mit einem ASCII-Buchstaben' F' oder 'f' versehen ist; andernfalls ist sein Typ "double" und kann optional mit einem ASCII-Buchstaben "D" oder "d" ergänzt werden. * --- Natürlich ist es dumm, in diesem Fall das "f" hinzuzufügen, da der Divisionsoperator ('/') wird den Wert zu" double "zwingen, wodurch die Präzision in der" float "- zu" double "-Umsetzung verloren geht. – Andreas

+0

0,1 bedeutet doppelt und .1f bedeutet 0,1 float – user7676575

+0

alles mit dem Suffix 'f/F' wird als [' Float' bezeichnet] (https://docs.oracle.com/javase/7/docs/api/java/lang/ Float.html) – Paras

Antwort

2

Standardmäßig wird .1 aufgelöst, um Double in Java einzugeben. Und indem Sie f hinzufügen, sagen Sie dem Compiler, dass er vom Typ float ist.

Also keine Notwendigkeit, es zu werfen!

+0

Natürlich ist es nicht notwendig, es in diesem Fall zu "Floaten" zu machen, da es durch den Operator '/' in 'double' umgewandelt wird, und' (double) .1f' ist eigentlich '0.10000000149011612', nicht '0.1', so dass das Literal ein' float' ist, ist tatsächlich schädlich. Hoppla! – Andreas