块 is the spoken word for the currency unit; 元 is what is printed. Say 二十块钱 and you sound like a shopper, say 二十元 and you sound like a receipt. 打八折 catches people out: it is 80 percent of the price, i.e. 20 percent off - the number names what you pay, not what you save.