What is with the terrible math of Vietnamese when giving change?

I'm starting to think they're doing it on purpose as it's always less than the change owed.

I counted and this happened to me about 6 times in less than 7 days.

Eg. Gave 500k VND for 240k ride, guy gave $220k. I said that's the wrong change. He pointed to a 50k note in my wallet. Gave it to him. Now he gives my 300k. I'm like "Bro, you still owe me 10k."

This happened from everywhere from Popeyes. To taxi drivers. And food stalls. Like either they're doing it on purpose or their math is lousy.