我想知道fortran 95(f95)如何转换双精度(DP),其指数大于单精度(SP)指数中的指数。
所以说我有一些DP编号的指数大于可以存储到SP数据类型的指数。它是否只是最大化指数并切断尾数并以这种方式存储或做其他事情。
如果这是正确的,那么这是否意味着无论何时指数从DP到SP太大,我都会得到+或 - 无穷大(如果DP的尾数在前8位中为零)和NaN (如果尾数中的前8位中的任何一位是1)?
非常感谢你的帮助!!!!
答案 0 :(得分:7)
是,如果您尝试将双精度变量a
存储到单个精度变量b
中,而a
不在[-HUGE(b),HUGE(b)]
范围内,{{ 1}}将变为b
或+Inf
,具体取决于-Inf
的符号。
这确实是一种理想的行为 - 一种捕获浮动溢出并有助于极大调试的功能。