fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. void putll(long long n)
  5. {
  6. char r = n % 10;
  7. if (n >= 10) {
  8. putll(n / 10);
  9. }
  10. putchar('0' + r);
  11. }
  12.  
  13. void putdouble(double d)
  14. {
  15. double x = d;
  16. long long l;
  17. int i;
  18. char n;
  19.  
  20. if (x < 0) { // 負ならマイナス符号を出力してxの正負反転
  21. putchar('-');
  22. x *= -1;
  23. }
  24. l = floor(x); // xの整数部分
  25. putll(l);
  26.  
  27. putchar('.');
  28.  
  29. x -= l; // 小数部分を取り出す
  30. for (i=0; i<6; ++i) { // 小数部は6桁表示
  31. x *= 10;
  32. n = floor(x);
  33. putchar ('0' + n);
  34. x -= n;
  35. }
  36. putchar('\n');
  37. }
  38.  
  39. int main(void) {
  40.  
  41. putdouble(-123.000123);
  42. putdouble(123123);
  43. putdouble(1.0/7.0);
  44.  
  45. return 0;
  46. }
  47.  
  48.  
Success #stdin #stdout 0s 2248KB
stdin
Standard input is empty
stdout
-123.000123
123123.000000
0.142857