如何在C中找到浮点数的长度而不使用字符串......?

时间:2014-06-02 08:00:47

标签: c

例如1.54的长度是4,包括小数点。我需要一个C代码,以相同的方式查找长度但没有字符串和snprintf

2 个答案:

答案 0 :(得分:3)

计算浮点数十进制表示的长度并没有多大意义,因为它的底层表示是二进制的。例如,十进制形式的0.1会产生无限数量的二进制数字。

C没有内在的十进制类型,因此您必须使用某种特殊类型表示您的号码,并在右侧删除无效数字。 C字符串不是最糟糕的选择。

答案 1 :(得分:0)

长度由您在打印时设定。

#include <stdio.h>

int main ()
{
  float x = 0.2;
  double y = 0.2;

  int size_x = sizeof(float);
  int size_y = sizeof(double);

  printf("Variable x has a size of %i. But i can print if as different lengths: %f, %3.2f, %g, %e\n", size_x, x, x, x, x);
  printf("Variable y has a size of %i. But i can print if as different lengths: %lf, %3.2lf, %lg, %le\n", size_y, y, y, y, y);

  return 0;
}