Integer Rundungsfehler vermeiden

Gast #2186157
Lesenswert?
• ▲
▼
Wie vermeidet man sowas:
1
#include "stdint.h"
2
#include "stdio.h"
3
int main(void)
4
{
5
uint8_t A = 10;
6
uint8_t B = 2;
7
uint8_t n = 5;
8

9
int8_t steps = (B - A) / n;
10
int8_t pos = A;
11

12
printf( "From %d to %d (%d steps) in %d increments of %d\n", A, B, A-B, n, steps );
13

14
 while( n-- )
15
 {
16
  printf( "%d %d\n", n, pos );
17
  pos += steps;
18
 }
19

20
return 0;
21
}
1
From 10 to 2 (8 steps) in 5 increments of -1
2
4 10
3
3 9
4
2 8
5
1 7
6
0 6

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.