Błąd przy wyświetlaniu long double.

Błąd przy wyświetlaniu long double.
JK
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:55
0

Witam.
Przy tym programie, wynik jaki mi sie wyswietla to 0.000000.
Chciałbym aby był wyświetlany wynik, czy ktoś ma jakiś pomysł co robię nie tak?

Kopiuj
 #include <stdio.h>
#define PI 3.1415926535897932

main(){

 puts("Obliczanie objetosci walca");

 long double promien = 6.6845;
 long double wysokosc = 15.4576;
 long double objetosc;
 
     objetosc = PI * promien * promien * wysokosc;
     
     printf("\nObjetosc walca = %lf",objetosc);
     
 return(0);
}
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
  • Lokalizacja:Szczecin
2

Nie czytasz dokumentacji. %lf to format dla double, %Lf jest dla long double.

Btw, main() musi mieć zadeklarowany zwracany typ.


JK
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:55
0

Pomyliłem się, wcześniej było %Lf, przy testowaniu pozmieniałem i źle skopiowałem, ale przy %Lf też wyświetla ten sam wynik.

EDIT.
Teraz wygląda tak i nadal 0.000000

Kopiuj
 
#include <stdio.h>
#define PI 3.1415926535897932

int main(int argc, char *argv[]){

 puts("Obliczanie objetosci walca");

 long double promien = 6.6845;
 long double wysokosc = 15.4576;
 long double objetosc;
 
     objetosc = PI * promien * promien * wysokosc;
     
     printf("\nObjetosc walca = %Lf",objetosc);
     
 return 0;
}
edytowany 1x, ostatnio: JareKanarek
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
  • Lokalizacja:Szczecin
1

JK
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:55
0

Uzywam DEV C++ i u mnie wygląda to tak. Całe oprogramowanie jest aktualne więc gdzie może być błąd?

user image

kq
Pokaż kod który nie działa, podaj wersję kompilatora.
JK
Dev C++ 5.11, kompilator TDM-GCC 4.9.2 64-bit Release. Kod jest wyżej w poście przy EDIT.
kq
Jesteś pewien, że kompilujesz od nowa? Jak widzisz "u mnie działa", więc to może coś być ze słabym IDE np.
JK
Tak, kompiluję od nowa, nawet nowy projekt zakładałem. Widzę, że działa w tym linku co podesłałeś więc nie mam więcej pytań i dzięki wielkie.
kq
Kompilujesz to jako C czy C++? Z jakim standardem? Spróbuj odpalić kompilator ręcznie z konsoli, zobacz czy też wyjdzie taki wynik
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:2 minuty
0

Zmień wydrukowany tekst by upewnić się, że na pewno uruchamiasz nową wersję, a nie jakąś starą.
Na 100% uruchamiasz ciągle starą wersję, bu u nas wszytko działa.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
3

http://stackoverflow.com/questions/26296058/cant-print-correctly-a-long-double-in-c
Kompiluj z -D__USE_MINGW_ANSI_STDIO
albo dopisz do programu

Kopiuj
#define printf __mingw_printf
kq
Good find. Szukałem czegoś takiego i nie znalazłem.
MarekR22
nice, nawet na tak prostym temacie można dowiedzieć się czegoś nowego/ciekawego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.