-->
当前位置:首页 > 题库 > 正文内容

函数题:截断问题(实用版)

Luz3年前 (2022-07-31)题库783
C99 标准函数库中引入了截断函数 trunc,用于对小数作截断处理。作为练习,我们自己编写一个功能更全、更实用的函数。

c
double Trunc(double x, int d);


说明:参数 x 是任意实数,d 为小位位数。函数值为将 x 截断为保留 d 位小数的实数。

#### 裁判程序

c
#include <stdio.h>
#include <math.h>

#define epsilon 1e-8

......

double Trunc(double x, int d);

int main()
{
double x, y;
int d;
scanf("%lg%d", &x, &d);
y = Trunc(x, d);
printf("%.15g\n", y);
return 0;
}

......

/* 你提交的代码将被嵌在这里 */


注:epsilon 为误差阈值。

#### 输入样例1
in
-0.0000326 4


#### 输出样例1
out
0



#### 输入样例2
in
30.2689 2


#### 输出样例2
out
31.26



#### 输入样例3
in
-15374093826.98 0


#### 输出样例3
out
-15374093826



#### 输入样例4
in
927.19999999999993 1


#### 输出样例4
out
927.2



样例说明:实数 165.4 与 761.8 相加,结果本应为 927.2。若保留 1 位小数,则为 927.2。但在计算机上因误差原因机器值为 927.19999999999993,因此要考虑误差因素将结果调整为 927.2。

提示:需要用到前面练习中的实数零的校正、实数的整数次幂等函数,以及 C 语言标准库中的 floor、ceil 等函数。

---

相关习题:实数零的校正、实数的整数次幂、截断问题(简版、高级版)、舍入问题(简版、高级版、实用版)。






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。