To elaborate the above...
The default output of the lsblk command is in human readable format.
1GB = 1,073,741,824 Bytes
If you use the -b i.e lsblk -b option you will see that they match.
Here is an example from one of my computers
Code:
fdisk shows Disk /dev/sda: 160.0 GB, 160041885696 bytes
lsblk shows sda 8:0 0 149.1G 0 disk <- 160,041,885,696 / 1,073,741,824
lsbl -b shows sda 8:0 0 160041885696 0 disk