C:
小数的四舍五入问题
小数用 %.xf 输出的话 是会自动四舍五入的
比如说
double e = 2.718, c = 3.141; printf("%.2lf\n", e); printf("%.2lf\n", c); printf("%.2lf\n", (int)(e * 100) / 100.0); printf("%.2lf\n", (int)(c * 100) / 100.0);运行结果
也就是说 如果要求 不要让它进位 像整数除法一样,那么就要类似于那样的操作
如果要保留任意 从键盘输入的N位小数输出一个数字 那怎么办呢
printf("%.*lf\n",c,d); // c 表示保留的小数位数,它替代的是*的位置对齐问题:
printf("%-5d\n]", a, b); //左对齐 无负号 右对齐填充问题
printf("d\n", a); // 如果输出的位数不够五位 自动用0补齐 或者还可以用空格补齐 好像不能填充其他符号吧,,C语言读入问题
scanf("", &a); // 这样就会只读进来一位数字读入字符问题
printf(" %c", &c); // 这样就可以防止读入空格 因为%c 前面的空格可以吸收空格和空行 就不用再打 getchar()按格式读入问题
比如说有的题目的input 要求是 (a, b)
但实际上 我们只需要 读入a 和 b 就可以了
scanf("(%d,%d)", &a, &b); // 只要按照它的格式 来就可以了 就像前面的空格可以吸收空格和空行一样C++
保留小数问题
double e = 2.718, c = 3.141; cout << fixed; // 表示按照小数形式输出小数 默认是按照科学计数法输出小数 cout.precision(2); // 表示输出的小数保留几位 cout << e << " " << c << endl;如果要按格式输出 比如左对齐 右对齐
double e = 2.718, c = 3.141; cout << setw (20); // 宽度 cout << left << e << endl; // 左对齐 cout << right << e << endl; // 右对齐填充问题
double e = 2.718, c = 3.141; cout.fill('*'); // 填充'*' 实际上 ' ' 里面是随便填的 不像 c 里面 只能填充0 和 空字符 cout << left << setw(20) << e << endl; // 表明 左对齐 宽度20 cout << right << setw(20) << e << endl; // 表明 右对齐 宽度20转载于:https://www.cnblogs.com/Dup4/p/9433065.html
相关资源:c 输出日志的 方法