If I spent 100.50, would I have to say, "一百块零五毛" if yes, why do I have to put the "ling" after the "kuai" since "yibaikuai" already establishes the number 100?
We say "one hundred dollars and fifty cents" in English. 零 functions the same as 'and' , of course you can say "one hundred dollars fifty cents" or "一百块五毛" but that would make it sound like the phrase is broken into two parts –
If it is "一百五十五块五毛" ($155.50) , we don't put 零 between "块" and "毛" ; we only add 零 when the previous digit is zero
"一百五十块零五毛" ($150.50)- last digit of 'dollar' is zero, therefore 零 is added before '五毛'
"一百五十五块五毛" ($155.50)- last digit of 'dollar' is not zero, therefore 零 is not added before '五毛'
"一百万零五千元" (One million and five thousand dollars) - need 零 between 一百万 and 五千元 because the last digit of million is a zero
"一百二十五万四千三百二十一元 ($1,254,321)- no 零 needed
"Five hundred and five dollars" ($505) = 五百零五元
"Five hundred fifty five dollars" ($555) =五百五十五元