Why is the target truncated? Reading the docs on target:


  The maximum target used by SHA256 mining devices is:
  
  0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  
  Because Bitcoin stores the target as a floating-point type, this is truncated:
  
  0x00000000FFFF0000000000000000000000000000000000000000000000000000


I know that the purpose is to force miners to generate hashes with a value lower than the target. But the docs are vague, why is this truncation required? And then, why truncate after the first four Fs?
Target is stored in block header (it's called Bits), and it takes only 4 bytes. We derive target 256-bit value from these 32 bits. That's why it is getting truncated.

There is no need to store all 256 bits, or even 224 bits (if we assume first 4 bytes are zero). We don't need such precision.

You can read in wiki, how target is getting calculated from Bits.

You can also check my answer here, with example: 
How does difficulty is defined for block &#39;55798&#39;?