Tale programma è corretta, e la sua uscita dovrebbe essere:
0.999990
9.999900e-01
o qualcosa di molto simile a quella.
(non si utilizza args
o argv
, e il nome usuale per il primo parametro di main
è argc
piuttosto che args
, ma nessuno di questi è un problema che dovrebbe influenzare il comportamento del programma.)
E ' sembra che tu abbia trovato un bug nella tua implementazione, probabilmente nella libreria di runtime piuttosto che nel compilatore stesso. Le mie brevi ricerche su Google non hanno trovato un riferimento a questo particolare bug (in effetti, il risultato più importante era questa domanda).
Suggerisco di contattare il manutentore di lcc-win; le informazioni di contatto sono nello web site. Una breve descrizione e un link a questa domanda dovrebbero fornire informazioni sufficienti, almeno per iniziare.
fonte
2013-08-23 19:59:59
Si sta utilizzando [lcc] (http://en.wikipedia.org/wiki/LCC_ (compiler)) o la sua derivata [lcc-win] (http://www.cs.virginia.edu/~lcc -Win32 /)? Hai lo stesso problema se aggiungi #include? (Non si tratta solo di un problema di precisione, l'uscita è disattivata di un fattore 100.) –
Quando uso printf ("% e \ n", 0.99999); La risposta è corretta 9.999900e-001 Il problema si verifica solo per numeri specifici. – user2712052
Io uso lcc-win, e sì lo è incluso. –
user2712052