Estoy creando una calculadora RPN para un proyecto escolar. Estoy teniendo problemas con el operador de módulo. Dado que estamos utilizando el tipo de datos doble, el módulo no funcionará en números de coma flotante. Por ejemplo, 0.5% 0.3 debería devolver 0.2 pero estoy obteniendo una excepción de división por cero.¿Cómo se usa el módulo para flotación/doble?
La instrucción dice que use fmod(). He buscado fmod() en todos lados, incluidos javadocs, pero no puedo encontrarlo. Estoy empezando a pensar que es un método que voy a tener que crear?
editar: hmm, extraño. Acabo de enchufar esos números nuevamente y parece estar funcionando bien ... pero por las dudas. ¿Debo tener cuidado con el operador de mod en Java cuando uso tipos flotantes? Sé que algo así no se puede hacer en C++ (creo).
pero '1.0% 0.1' devuelve ...' 0.09999999999999995', como resultado de un error de redondeo. ¿Alguna idea de cómo corregir esto (presumiblemente con valores épsilon?) – Groostav
los errores de redondeo siempre ocurrirán en los cálculos de punto flotante. O tome el valor tal como está dado, o redondee al valor necesario más cercano. – Anarchofascist
'String.format ("% .8f ", 1.0% 0.1)' devuelve '0.10000000' – Anarchofascist