In Java ist ein Doppel von 0,0000001 die gleiche Multiplikation, wie es durch Dividieren 10000000? Meine Intuition ist, dass es einen Unterschied geben könnte, da 0,0000001 nicht genau in einem Double dargestellt werden kann.Multiplizieren Sie mit 0,0000001 genauso wie mit 10000000?
Antwort
Nein, es ist nicht das gleiche für den Grund, den Sie erwähnt. Hier ein Beispiel:
double x = 894913.3;
System.out.println(x * 0.0000001); // prints 0.08949133
System.out.println(x/10000000); // prints 0.08949133000000001
ein BigDecimal
verwenden, können wir die Differenz zwischen den beiden Werten sehen:
System.out.println(new BigDecimal(0.0000001));
System.out.println(new BigDecimal((double)10000000));
Ouput:
9.99999999999999954748111825886258685613938723690807819366455078125E-8
10000000
Es ist nicht nur nicht gleich, weil der doppelte Darstellung, aber auch wenn Sie eine ganze Zahl mit einem doppelten multiplizieren, ist das Ergebnis ein Double. Wenn Sie eine ganze Zahl durch eine ganze Zahl devide, ist das Ergebnis eine ganze Zahl:
int i = 1;
System.out.println(i*0.0000001);
System.out.println(i/10000000);
druckt
1.0E-7
0
Die Frage nach der Multiplikation eines Doppelten oder Teilens "es", nehme ich das gleiche Doppel an. –
Ups, Sie haben Recht. Soll ich meine Antwort trotzdem behalten oder entfernen? – Marv
- 1. jQuery: Multiplizieren Sie eine Zahl mit 7.5
- 2. multiplizieren mit integer mit tMap
- 3. BigDecimal multiplizieren mit Null
- 4. Matrix Multiplizieren mit Threads (jeder Thread does single multiplizieren)
- 5. Multiplizieren von Matrizen mit Block
- 6. C#: Multiplizieren Dezimal mit Float?
- 7. Rückgabetyp genauso wie struct golang
- 8. Sind Sabber genauso wie Jrules?
- 9. Multiplizieren Sie jede Spalte einer Matrix mit einer anderen Matrix
- 10. Wie kann ich mit jquery Tags genauso behandeln wie Live Mail mit E-Mail-Adressen?
- 11. multiplizieren Inhalt einer Spalte mit Combobox
- 12. Python-Zeichen multiplizieren oder multiplizieren
- 13. Wie multiplizieren AWK Ausgang
- 14. Numpy, multiplizieren Sie 3x3 Array mit 3x10 Array?
- 15. C# -Warteschlange multiplizieren Sie alle Elemente mit -1
- 16. Multiplizieren Sie Spalten in einem Datenrahmen mit einem Vektor
- 17. Multiplizieren Sie TimeSpan in .NET
- 18. Multiplizieren 3D-Matrix mit 2D-Matrix
- 19. Nicht-blockierende Socket-IOs mit EOF multiplizieren
- 20. Multiplizieren von NumPy-Arrays mit Skalaren
- 21. Wie kann TextView genauso aussehen wie EditText?
- 22. Operating mit Oracle-Abfragen (Multiplizieren, Dividieren, etc)
- 23. Multiplizieren Feld Wert mit abgerufenen Wert jQuery
- 24. Multiplizieren einer Matrix mit der gleichen Leistung mit Java
- 25. Multiplizieren Sie eine Zeichenfolge in Java
- 26. Wie man numpy 2D-Array mit numpy 1D Array multiplizieren?
- 27. Kreuz Multiplizieren
- 28. Kann ich cStringIO genauso verwenden wie StringIO?
- 29. Assemblersprache mit shl mit einer ungeraden Zahl multiplizieren?
- 30. Multiplizieren referenzierter Fremdschlüssel
Ok, also wo ist die Erklärung? –
@BorisTreukhov In der Frage. :) – biziclop
Die Intuition in der Frage ist die richtige Erklärung. Das nächstliegende Doppelte zu 0.0000001 ist 9.99999999999999954748111825886258685613938723690807819366455078125E-8. –