前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

C语言-精度问题(c语言精度0.0005)

qiguaw 2024-09-01 01:18:25 资源文章 29 ℃ 0 评论


①引子

以四舍五入,保留两位小数为例,

输入数据:123.456

理想结果:123.46

但是

选取不同的数据类型

会得到不同的小数精度

只能是约等于123.46

C语言中

浮点数无法精确存放,

double类型的精度高于 float类型。

②float类型的精度

float fun (float h)

{long t;

t=(h*1000+5)/10;

return(float)t/100;}

输入数据:123.456

原始数据:123.456001

实际结果:123.459999

~

float fun (float h)

{int t=(int)(h*1000+5)/10;

return(float)t/100;}

输入数据:123.456

原始数据:123.456001

实际结果:123.459999

float fun (float h)

{return(float)(int)(h*1000+5)/10/100;

}

输入数据:123.456

原始数据:123.456001

实际结果:123.460999

③double类型的精度

double fun (double h)

{long t;

t=(h*1000+5)/10;

return(double)t/100;}

输入数据:123.456

原始数据:123.456001

实际结果:123.460000

~

double fun (double h)

{int t=(int)(h*1000+5)/10;

return(double)t/100;}

输入数据:123.456

原始数据:123.456001

实际结果:123.460000

~

double fun (double h)

{return(double)(int)(h*1000+5)/10/100;

}

输入数据:123.456

原始数据:123.456001

实际结果:123.461000

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表