【发布时间】:2017-05-15 20:46:44
【问题描述】:
我是 C 的新手,到目前为止,我只使用过 OOP 语言,而不必过多地关注内存或位的工作方式,我需要帮助来了解这里发生的事情。
我必须通过将变量初始化为数据类型的最小/最大值并尝试加或减 1 来测试 C 中每种数据类型的最小和最大界限。我已经超越了整数类型,现在我对 Float 类型的行为感到困惑。我一直在阅读的很多内容有点过头了,如果有人能帮助我了解这些类型的工作原理,我将不胜感激。
这是我用来测试浮点数的:
void DisplayFloatMinimumAndMaximum()
{
// Declare variables
float fltMinimum = 0;
float fltMaximum = 0;
// Set min/max values
fltMinimum = -3.4e38;
fltMaximum = 3.4e38;
printf("Float Minimum and Maximum\n");
printf("------------------------------------------------\n");
printf("Float Minimum : %.10e\n", fltMinimum);
printf("Float Maximum : %.10e\n", fltMaximum);
printf("\n");
fltMinimum -= 1.0f;
fltMaximum += 1.0f;
printf("Confirmation\n");
printf("Float Minimum : %.10e\n", fltMinimum);
printf("Float Maximum : %.10e\n", fltMaximum);
printf("\n");
}
我得到的结果是:
Float Minimum and Maximum
------------------------------------------------
Float Minimum : -3.3999999521e+38
Float Maximum : 3.3999999521e+38
Confirmation
Float Minimum : -3.3999999521e+38
Float Maximum : 3.3999999521e+38
似乎什么也没发生。
这是正确的行为吗?如果是这样,为什么?如果不是,为什么?
(我使用的是 Visual Studio 2015)
【问题讨论】:
标签: c