5

Rounding error

  1. #include <stdio.h>
  2.  
  3. main() {
  4.     double x = 1000/3.0;
  5.     double y = x - 333.0;
  6.     double z = 3*y - 1.0;
  7.     printf("x=%f\n", x);
  8.     printf("y=%f\n", y);
  9.     if ( z == 0 )
  10.         printf("z=0\n");
  11.     else
  12.         printf("z=%.15lf\n", z);
  13. }
$ gcc -o round round.c
$ ./round 
x=333.333333
y=0.333333
z=-0.000000000000057

Comments

Your comment:
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip help 2000

Enter a maximum of 2000 characters.
Improve the presentation of your text with the following formatting tags:
[p]paragraph[/p], [b]bold[/b], [i]italics[/i], [u]underline[/u], [s]strike[/s], [quote]citation[/quote], [pre]as is[/pre], [br]line break,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]command[/code], [code=language]source code in c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].