Pętla for z krokiem 0.1
Ostatnio zmodyfikowano 2017-01-03 20:44
qloda Temat założony przez niniejszego użytkownika |
Pętla for z krokiem 0.1 » 2017-01-03 13:27:58 Witam, Dzisiaj zająłem się pętlą for i jedno zadanie już mnie irytuje "Napisz pętlę for, która drukuje ciąg wartości typu double postaci: 0.1, -0.2, 0.3, -0.4, 0.5, -0.6, ..., -2.0" Probuje uzyskać te 2.0 lecz dochodzi tylko do 1.9. Ktoś wie jak to zrobić? #include <iostream> #include <cstdlib>
using namespace std;
int main() { cout << "Ciag wartosci typu double" << endl; for( double k = 0.1; k <= 2.0; k += 0.1 ) { cout << k << ","; } return 0; }
|
|
DejaVu |
» 2017-01-03 14:26:02 Sprawdź: for( double k = 0.1; k <= 2.01; k += 0.1 )
|
|
Monika90 |
» 2017-01-03 15:35:44 std::cout << std::fixed; std::cout.precision( 1 ); int s = 1; for( int i = 1; i <= 20; ++i ) { std::cout << s * i / 10.<< ' '; s = - s; }
|
|
pekfos |
» 2017-01-03 19:00:11 Nigdy nie polegaj na równości dwóch liczb zmiennoprzecinkowych. Nie wszystkie liczby są reprezentowalne, co wprowadza błędy obliczeń. |
|
qloda Temat założony przez niniejszego użytkownika |
» 2017-01-03 20:44:27 @DejaVu też tak myślałem, lecz niestety nic z tego
@Monika90 Dziękuje. Wszystko działa
@up Niedawno właśnie czytałem, że dosyć często jak tak się robi są błędy. Bardzo dziękuje za wskazówkę, na pewno się przyda :)
Temat można zamknąć. Z góry dzięki za tak szybką odpowiedź. Pozdrawiam. |
|
« 1 » |