我试图弄清楚如何将负无穷大的值赋给浮点数或双变量.似乎包括标准库限制,我可以获得无穷大表示,并且我知道(非常肯定)在前面添加一个减号(-infinity)可能会导致我在IEEE754浮点中寻找的值标准(因为0x7FFFFFFF可能会导致0xFFFFFFFF),但我甚至不确定,更不用说可能存在的其他标准(如果有的话).我发现它真的,非常不专业和依赖于实现.
当然,有没有一种方法可以独立获得负无限平台和实现的价值,否则我也可以使用#define,每个人都喜欢预处理.
我正在阅读在C++中将int设置为Infinity.我明白,当一个人需要真正的无限时,一个人应该使用numeric_limits<float>::infinity(); 我猜的理由背后是通常整型已指定为用于表示如特殊状态没有价值的NaN,天道酬勤,像等IEEE 754个浮动不(再C++不强制要求既不- int与float使用都留给实现); 但max > infinity对于给定的类型,它仍然是误导性的.我试图理解标准中这个调用背后的基本原理.如果infinity对某种类型没有意义,那么不应该禁止它而不是要检查其有效性的标志吗?
当我们在java中的任何一个原始类型上使用MIN_VALUE函数时,它为我们提供了该类型的最小值.但是在float和double的情况下,它返回最小正值,虽然float和double也可以有负值.
这段代码:
int main(){
printf("The value of FLT_MAX is %.5f\n", FLT_MAX);
printf("The value of FLT_MIN is %.5f\n", FLT_MIN);
printf("A float takes %i bytes\n", sizeof(float));
float fx = -1.24;
printf("The value of fx is %f\n", fx);
}
Run Code Online (Sandbox Code Playgroud)
收益:
The value of FLT_MAX is 340282346638528859811704183484516925440.00000
The value of FLT_MIN is 0.00000
A float takes 4 bytes
The value of fx is -1.240000
Run Code Online (Sandbox Code Playgroud)
是float无符号数?为什么这是FLT_MIN 0另一方面我可以存储一个负值float?