Because df shows blocks as 512 bytes, in "df -g" option to put in kbytes is /2, e.g 2 512 bytes blocks = 1 kbyte then to but in bytes * 1024, so in your example we have a "/data" with aprox. 1GB, df -g shows that logical block size is 8192 bytes, but to misleading us

shows total blocks in 512 bytes blocks, so to convert in bytes and to get your 1GB we first put in Kbytes:
2036704/2 = 1018352 Kbytes (because 2 blocks is 1 Kbyte)
then if we want in bytes:
1018352*1024 = 1042823168 bytes (aprox. your 1GB) or the total size of "/data" in your example.
then the other example uses "fsck" on same filesystem "/data" aprox 1GB, but fsck is also confuse ...
because shows free blocks as logical blocks ! we already kwon from "df -g" that logical block size for "/data" is 8192 bytes (8K), so in fsck example reports 127294 free blocks:
127294*8192=1042792448 bytes
but in my first replay I want to show you the missing space ! because from "df -g" we get for "/data" 1042823168 bytes and from "fsck" we get 1042792448 so where is the missing 30720 bytes ! if you note from "df -g" output is show frag size as 1024 bytes and fsck reports 21 frags so 21*1024=21504 bytes, but 30720-21504=9216 bytes, but fsck also reports 9 blocks used because used blocks in fsck are in 1024 bytes (frag size) ! 9*1024 = 9216 !
Hope it helps
Regards,
Carlos Almeida