当前位置:  开发笔记 > 编程语言 > 正文

是否有一个函数来循环C中的浮点数或我需要自己编写?

如何解决《是否有一个函数来循环C中的浮点数或我需要自己编写?》经验,为你挑选了2个好方法。

是否有一个函数来循环C中的浮点数或我需要自己编写?

float conver = 45. 59 2346543;

我想实际值四舍五入至小数点后一位,CONVER = 45.6.



1> Matt J..:

正如Rob所说,你可能只想将浮点数打印到1位小数.在这种情况下,您可以执行以下操作:

#include 
#include 

int main()
{
  float conver = 45.592346543;
  printf("conver is %0.1f\n",conver);
  return 0;
}

如果你想实际舍入存储的值,那就有点复杂了.例如,您的一位小数位表示很少具有浮点的精确模拟.如果你只是想尽可能接近,这样的事情可能会成功:

#include 
#include 
#include 

int main()
{
  float conver = 45.592346543;
  printf("conver is %0.1f\n",conver);

  conver = conver*10.0f;
  conver = (conver > (floor(conver)+0.5f)) ? ceil(conver) : floor(conver);
  conver = conver/10.0f;

  //If you're using C99 or better, rather than ANSI C/C89/C90, the following will also work.
  //conver = roundf(conver*10.0f)/10.0f;

  printf("conver is now %f\n",conver);
  return 0;
}

我怀疑第二个例子是你在寻找什么,但我把它包括在内是为了完整性.如果您确实需要在内部以这种方式表示您的数字,而不仅仅是在输出上,请考虑使用定点表示.



2> Eduard - Gab..:

当然,你可以使用roundf().如果你想要舍入到一个小数,那么你可以做类似的事情:roundf(10 * x) / 10

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有