Sto creando un calcolatore RPN per un progetto scolastico. Sto avendo problemi con l'operatore modulo. Dato che stiamo usando il doppio tipo di dati, il modulo non funzionerà su numeri in virgola mobile. Ad esempio, 0,5% 0,3 dovrebbe restituire 0,2 ma sto ottenendo una divisione per eccezione zero.Come utilizzare il modulo per float/double?
L'istruzione dice di usare fmod(). Ho cercato ovunque fmod(), incluso javadocs ma non riesco a trovarlo. Sto iniziando a pensare che sia un metodo che dovrò creare?
modifica: hmm, strano. Ho appena ricollegato quei numeri e sembra che stia funzionando bene ... ma per ogni evenienza. Devo fare attenzione a usare l'operatore mod in Java quando utilizzo i tipi floating? So che qualcosa del genere non può essere fatto in C++ (credo).
ma '1.0% 0.1' restituisce ...' 0.09999999999999995', come risultato di un errore di arrotondamento. Qualche idea su come correggere questo (presumibilmente con valori epsilon?) Gli errori di arrotondamento – Groostav
si verificheranno sempre nei calcoli in virgola mobile. Prendere il valore dato o arrotondarlo al valore più vicino necessario. – Anarchofascist
'String.format ("%. 8f ", 1.0% 0.1)' restituisce '0.10000000' – Anarchofascist