Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pętla for z krokiem 0.1

Ostatnio zmodyfikowano 2017-01-03 20:44
Autor Wiadomość
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ć?


C/C++
#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;
}
P-155874
DejaVu
» 2017-01-03 14:26:02
Sprawdź:
C/C++
for( double k = 0.1; k <= 2.01; k += 0.1 )

P-155877
Monika90
» 2017-01-03 15:35:44
C/C++
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;
}
P-155884
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ń.
P-155900
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.
P-155919
« 1 »
  Strona 1 z 1