Come si calcola il resto della divisione di due float
s?Remoinder of float division
risposta
Che ne dici di a-floor(a/b)*b
- presumendo a
e b
entrambi positivi?
Si potrebbe dire che "resto" non è un concetto appropriato per le divisioni float, ma lo lascerò a vostro giudizio.
continuo a ricevere il valore di '0.2' per' '99.6' e 0.2' - anche se dovrebbe essere 0 naturalmente solo come '996% 2' è 0. –
Utilizzare fmod
, che calcola il modulo a virgola mobile.
double remainder = fmod(a_double, another_double);
Se si desidera utilizzare float
invece di double
usereste fmodf
invece.
' fmod (97.2, 0.2) 'restituisce' 0.2', che non è molto utile. –
@ TomášZato Il problema qui è che né 97.2 né 0,2 possono essere rappresentati _esattamente_ come numeri in virgola mobile. Vedi [Perché i numeri in virgola mobile sono imprecisi?] (Http://stackoverflow.com/questions/21895756/why-are-floating-point-numbers-inaccurate). Nel mio debugger, ottengo '97.200000000000002' e' 0.20000000000000001' come argomenti, con il risultato '0.199999999999974746'. Potresti aver bisogno di una libreria matematica a punteggio fisso per il tuo caso. – DarkDust
Suppongo che questo spieghi anche perché non è riuscito a fare anche se if (resto == 0 || remainder == another_double) ', poiché' 0.1999999999999999746' non è uguale a '0.2'. Confronterò la differenza tra i numeri di –
- 1. Cython float division PyExc_ZeroDivisionError checking
- 2. Fast Division su GCC/ARM
- 3. virgola mobile; Division vs Multiplication
- 4. Java int division mi confonde
- 5. Left Matrix Division e Numpy Solve
- 6. Comportamento imprevisto per numpy self division
- 7. Newton-Raphson Division With Big Integers
- 8. Auto Boxing of primitives
- 9. Clojure^float vs. #^float?
- 10. Javascript Float + Float = String?
- 11. Python float - str - float weirdness
- 12. "If" statement - Order of validation of objects?
- 13. latex large division segno in una formula matematica
- 14. Java: dovrei usare float o float?
- 15. Java: double vs float
- 16. Perché è permesso "enum of enum of enum..`?
- 17. InvokeRequired of Form == false e InvokeRequired of contained control == true
- 18. 32651: confronto ERROR di Float with Float failed ruby
- 19. Clone-equivalent of fork?
- 20. source of REQUEST
- 21. Helicopterview of ABAP
- 22. Ethics of robots.txt
- 23. Sorting of Date ArrayList
- 24. AngularJS Array of Promises
- 25. C# Array of Classes
- 26. Stability of Merge sort
- 27. Marshall array of structures
- 28. AS3 Vector of Arrays
- 29. onCreate of Content Provider
- 30. Capture output of data
http://stackoverflow.com/questions/989943/weird-objective-c-mod-behavior – Chris