How to repair micro sd 16gb card? It shows 31mb

This problem can occur if there is a Linux image on the drive. In that scenario Windows does no see the drive as a whole, but as two separate devices, one of which Windows can not see at all. That is why SD formatter cant change the size of it, its not showing as a partition, but as a device. If you have a machine running Linux, pop the card in there and use a disk utility to fix it. If you dont, download the gparted-live iso, burn it to a cd and boot from it.