【问题标题】:Separating digits from a float从浮点数中分离数字
【发布时间】:2020-03-14 09:36:09
【问题描述】:

我需要一个具有 3 个变量的简单函数: l(左)、m(中)和 r(右) 所以

int l,m,r

当我输入数字 27.2 我应该变成2 m应该变成7 r 应该变成 2 我可以考虑将左边的 2 除以 10,然后转换为 int 但其他 2 个数字?

【问题讨论】:

  • 上传您的代码。
  • sprintf 将浮点数转换为字符串(具有所需的小数位数,这必须是要求),然后逐字符处理字符串。

标签: c integer digits


【解决方案1】:

让您的号码存储在 x 中。

float x = 36.2;
x = x*10;
int r = (int)x%10;
x = x/10;
int m = (int)x%10;
x = x/10;
int l = (int)x%10;
printf("%d, %d, %d",l, m, r);

【讨论】:

  • 请注意,此解决方案适用于 10.0 - 99.9,可能不适用于除此之外的其他值。如果您还需要考虑超出这些范围的情况,请告诉我!
  • 其实我是这样做的,它是用于在单独的 7 段(数字 8)显示块上显示温度。所以 temp 可能 99.9 不会是一个现实的场景。
  • 修改了解决方案!不确定您想如何处理负面情况,但如果需要,您可以使用 abs 函数(即abs(x))使其成为正面!
  • abs(x) 不是使-12.3 成为正数的正确函数。推荐fabsf()
  • @Niels 对于需要 C & F 的全球发行,>99.9 将是现实的。 Example 56.7 °C (134.1 °F) 至 -89.2 °C (-128.6 °F)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2018-04-05
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多