c语言怎样舍弃小数点后面指定位数以后的数

我想舍去小数点后面指定位数。比如1.784,我想舍去小数点1位右面的。变成1.7
注意,不是四舍五入.
找了半天没找到适合的命令,请大神指点,有没有现成命令?
如果没有能给贴个最简洁的函数方法。学习一下,谢了

Note1:
正数 x 四舍五入的技巧:
x --> (int)(x+0.5)
当 x=n+r, 0<=r<1,
若 0<=r<0.5, 则r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n
若 0.5<=r<1, 则1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1

Note2:
举例来说: 若正数要依舍去法精确到小数点後第二位
x --> (int)(x*100)/100 就好.
例如 3.2794 --> (int)(327.94)/100=327/100=3.27

Note3:
举例来说: 若正数要四舍五入精确到小数点後第二位
x*100 四舍五入再除以100 就好
也就是 (int)(x*100+0.5)/100
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-09
#include <stdio.h>

int main()
{
double m = 1.784;

printf( "%.1lf\n",m);

}
加一个.就可以了。追问

可不可以将printf函数输出的数赋给一个变量,比如 a=printf(……);

追答

不可以的。

本回答被提问者和网友采纳
相似回答