Ten program jest prawidłowy, a jego wyjście powinno być:
0.999990
9.999900e-01
lub coś bardzo podobny do tego.
(Nie używać args
lub argv
oraz nazwa zwyczajowa dla pierwszego parametru main
jest argc
zamiast args
, ale żadna z nich nie jest to problem, który powinien wpłynąć na zachowanie Twojego programu.)
To wygląda na to, że znalazłeś błąd w implementacji, prawdopodobnie w bibliotece środowiska wykonawczego, a nie w samym kompilatorze. W moich krótkich wyszukiwaniach w Google nie znalazłem odniesienia do tego konkretnego błędu (w rzeczywistości największym trafieniem było to pytanie).
Sugeruję skontaktowanie się z opiekunem programu lcc-win; dane kontaktowe znajdują się pod numerem web site. Krótki opis i link do tego pytania powinny dostarczyć wystarczającej ilości informacji, przynajmniej na początek.
Czy używasz [lcc] (http://en.wikipedia.org/wiki/LCC_ (kompilator)) lub jego pochodnej [lcc-win] (http://www.cs.virginia.edu/~lcc -win32 /)? Czy masz ten sam problem, jeśli dodasz #include? (To nie jest tylko problem precyzji, wyjście jest wyłączone przez współczynnik 100.) –
Kiedy używam printf ("% e \ n", 0.99999); Odpowiedź jest poprawna 9.999900e-001 Problem występuje tylko dla określonych liczb. – user2712052
Używam lcc-win, i tak jest wliczony w cenę. –
user2712052