【问题标题】:C float decimal not being memorized [duplicate]C浮点小数没有被记住[重复]
【发布时间】:2014-07-25 00:52:07
【问题描述】:

我有一段代码如下所示:

float nb = 100 / 42;
printf("%.2f", nb);

我希望打印出2.38,但它却打印出2.00

42 只是一个例子。在原始代码中,它是一个变量。

【问题讨论】:

  • 试试float nb = 84 / 42...
  • float nb = 100.0 / 42;float nb = (float)100 / 42;
  • 这是一个相关的问题:stackoverflow.com/questions/3602827/…
  • 记住了吗?什么意思?什么“浮点小数”? 100 和 42 都是 int 字面量。
  • @Engine - 只是那些缺乏诚信来帮助其他人通过解释投票来学习的人。如果反对票得到解释,我们都可以从理解中受益。不幸的是,那些认为重要的反对票说明了一切的人过于频繁地使用反对票......

标签: c decimal


【解决方案1】:

您需要将数字本身指定为浮点数。试试这个:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
    float nb = 100.0/42.0;
    printf("%.2f\n", nb);
    return 0;
}

【讨论】:

  • 请注意,100.0/42.0double,然后向下转换为 float,然后向上转换回 doubleprintf()。所以转换可能是不必要的。
猜你喜欢
  • 2012-10-27
  • 1970-01-01
  • 2013-09-13
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多