C++ - Problem z dzieleniem
Ostatnio zmodyfikowano 2015-01-14 17:26
Fletcher Temat założony przez niniejszego użytkownika |
C++ - Problem z dzieleniem » 2015-01-13 00:20:08 Witam mam następujący problem
double up = 0; up = (100 / 10);
zwraca 10;
double up = 0; up = (10 / 100);
zwraca 0, pytanie dlaczego :O?
//edit dodam ze jak zrobie cos takiego to dziala normalnie up = (10.0 / 100.0);
IDE Visual Studio 2014 |
|
stryku |
» 2015-01-13 06:56:16 Bo w dwóch pierwszych przypadkach robisz: 1. dzielisz int przez int --> wychodzi int czyli liczba całkowita 2. przypisujesz to do double. Już bez ułamka
A w tym z kropkami 1. dzielisz double przez double ----> wychodzi double czyli normalnie z ułamkiem 2. przypisujesz do zmiennej. Znów z ułamkiem |
|
Chlorek |
» 2015-01-14 15:02:28 Jak kolega wcześniej napisał, dokładnie na tym polega problem. Sytuacja wygląda tak: każda liczba całkowita wpisana w programie będzie typu int, gdy chcesz uzyskać liczbę zmiennoprzecinkową wystarczy dodać na końcu kropkę: Można też określić jakiego dokładnie typu ma być ta liczba poprzez suffixy: |
|
Nitr0Skay |
» 2015-01-14 16:05:43 Czy tak nie było czasem w czystym i klasycznym C ?? Te Suffixy (tak to się nazywa ?) odgrywają jeszcze w ogóle jakąś znaczącą rolę w programowaniu czy webmasterce w dzisiejszych czasach ?? |
|
Chlorek |
» 2015-01-14 16:17:52 C i C++ są sobie bliskie, niemal wszystko jest takie samo, odpowiadając na pytanie: tak właśnie też było. Co do nazewnictwa - suffix, to po prostu dodatek na końcu czegoś tak jak PREfix jest na początku. Po angielsku oryginalnie jest to chyba numeric literal operator. Nie jestem pewien ale chyba od C++11 można pisać własne, nigdy jednak nie potrzebowałem tego mechanizmu. Co do roli to jak sam widzisz, lepsze to niż pisanie (float)10 , a ponad to zobacz jak ciekawe możliwości to daje gdy możesz napisać taki własny operator. |
|
Nitr0Skay |
» 2015-01-14 17:26:13 Dziękuję za informacje :) |
|
« 1 » |