lzth.net
当前位置:首页 >> C语言精确小数位数会怎样舍去后面的小数 >>

C语言精确小数位数会怎样舍去后面的小数

C语言用%m.nf输出浮点数时,会从n+1位小数位进行四舍五入.如:printf("%5.2f\n", 3.567 ); //输出 3.57,前面有一个空格,补齐五个字符宽度.但,由于浮点数是不精确的数据,与实际准确数是有误差的,四舍五入也会出现差异,如: float f=3.155; printf("%f\n", f ); //默认小数位6位,第七位四舍五入:3.155000 printf("%.10f\n", f ); //输出:3.1549999714//参考以上代码说明,理解以下输出 printf("%.2f\n", f ); //3.15 printf("%.3f\n", f ); //3.155

#include int main() { double m = 1.784; printf( "%.1lf\n",m); } 加一个.就可以了.

可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果.要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double).在C语言中,使用格式化输出函数printf来实现输出.输出格式为%.NF1 %为格式化字符串的引导字符.2 .N表示指定显示N位小数.3 F为类型字符,对于float, F值为f, 对于double,F值为lf.举例:1 要输出float a=1.23234; 保留3位小数的写法为:printf("%.3f",a);2 输出double b=123.345232; 保留4为小数,写法为:printf("%.4lf",b);

你好!乘10,取整,除10.如有疑问,请追问.

int的作用是将后面计算结果强制数据类型转换为int, 换句话说舍弃小数部分:i*10=123.4(i*10)+0.5=123.9 如果原小数点后第2位>=5,这个加法会导致进位,在整数部分实现四舍五入(int)((i*10)+0.5)=(int)(123.9)=123 取整实现舍弃后续位(int)((i*10)+0.5)*0.1=12.3

有两种方法: 使用函数:#include<stdio.h>void main(){ double x,temp; int a; scanf("%lf",&x);temp=x; a=int(temp);while(a!=temp{ temp=temp*10; a=int(temp);} printf("%d\n",a); } 2.使用强制转换命令:(int)f;注意:在转换的时候,前面的转换型一定要打括号,否则不起作用.

C语言中的舍去小数部分不是四舍五入,而是直接舍掉小数部分

一.%nf 即输出的数字占n位 当原数字位数大于n时原样输出,原数字位数小于n时输出数字左端补上空格,比如原数字为a=1.23456;n为4时输出为1.23456,n为9时输出为 (空格空格1.23456) 二.%n.mf 即输出总共占n位其中有m位小数 如a=1.23456 用%4.2f输出为1.23如果用%5,1f输出为123.4即长度为5小数为1!这里也有当原数字长度小于n时左端补空格这个规则!还有就是当n前面有个负号时即%-nf或%-n.mf时就右端补空格!

您好,我是软件之家的♂北极熊熊,很高兴为您解答. ================================================================================== 代码如下: #include<stdio.h> void main() { double x,temp; int a; scanf("%lf",&x);

楼上的只能去小数部分吧. 你可以这样: float i; i = i-(int)(i); //现在i为小数部分 然后i=i*你的小数位数,最后i=i%10就可以了

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com