Difficulty: Easy
Correct Answer: Incorrect
Explanation:
Introduction / Context:Historic 16-bit DOS compilers (such as Turbo C) used specific floating representations. Understanding which numeric limits belong to float, double, and long double avoids selecting the wrong type or misjudging overflow risk. The statement equates double with a range typical for float—this must be validated.
Given Data / Assumptions:
Concept / Approach:The quoted range ±1.7e±38 is associated with 32-bit float, not 64-bit double. Double in both legacy and modern compilers typically reaches around 1.7e+308. Therefore, assigning float’s range to double is incorrect for the platform described.
Step-by-Step Solution:
Identify the claimed range: about 10^38.Map known ranges: float ≈ 10^38; double ≈ 10^308.Compare: the claim matches float, not double.Conclude: the statement is incorrect for double on the stated platform.Verification / Alternative check:Consult
Why Other Options Are Wrong:
Correct: conflicts with standard documentation.“Correct only for float” is true as a remark but does not answer whether the statement about double is correct (it is not).Mentions of register or optimizer are unrelated to fundamental type ranges.Common Pitfalls:Assuming all floating types share the same exponent range; conflating precision with range.
Final Answer:Incorrect.
Discussion & Comments