您的位置:首页 > 其它

分数化小数

2018-03-05 16:12 197 查看
要求保留指定位数的小数。

两种解法:第一种直接运用
printf()
函数的特性:

printf("%*.*s\n", m, n, ch);
//前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。


函数如下:

void f(int a, int b, int c)
{
if (b != 0)
{
printf("%.*lf\n", c, (double)a / b);
}
else
{
printf("error");
}
}


另一种就是直接模拟除法。代码如下,记得最后一位可能需要进位:

#include<stdio.h>
#include<stdlib.h>

int main()
{
int a, b, c, d;
scanf("%d%d%d", &a, &b, &c);
if (b != 0)
{
printf("%d%c", a / b, '.');
int i = 0;
for (i = 0; i < c-1; i++)
{
a %= b;
a *= 10;
printf("%d", a / b);
}
a %= b;
a *= 10;
d = a / b;
a %= b;
a *= 10;
if (a / b >= 5)
{
d++;
}
printf("%d\n", d);
}
else
{
printf("error");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: