Giving zakaah on cash in a different currency
Question

We want to give zakaah in the local currency, noting that the money we have is in dollars and there is no unified rate for exchanging dollars for the local currency, as the government has a fixed rate which we are still using for some purchases and services; the banks have a different rate; and the black market has a higher rate than the other two. But this exchange of dollars can only be done on the black market. Should the dollars be exchanged according to the highest rate on the black market, or according to the rate set by the government?
Praise be to Allah.Zakah on cash must be given in the currency in which this wealth reached the nisab (minimum threshhold), which is equivalent to the value of 595 grams of silver. Working out the nisab based on the value of silver is the view of most scholars.
It says in a statement of the Fiqh Council in Makkah al-Mukarramah: Zakah on cash becomes due when the value reaches the lower of the two nisabs of gold or silver, or it completes the nisab when added to other kinds of wealth and goods prepared for sale.
End quote from Qaraaraat al-Majma‘ al-Fiqhi al-Islami bi Makkah al-Mukarramah, p. 103.
It is good enough to pay the Zakah on cash in the same currency or in the equivalent value in another currency, if it is in circulation and it is possible for the poor person to spend from it and benefit from it without that resulting in any harm for him, because currencies all serve the same purpose and may be used to pay Zakah, so they are like two types of the same thing, as the fuqaha’ said regarding gold and silver.
Al-Bahooti said in ar-Rawd al-Murbi‘ (p. 208): Gold may be added to silver in order to complete the nisab. If a man owns ten mithqals (gold coins) and one hundred dirhams, each of them is equal to half of the nisab, and together they add up to the nisab; it is good enough to give the Zakah of one of them from the other, because the rate of Zakah is the same for both of them, so they are like two types of the same thing. End quote.
So if someone has dollars and wants to give Zakah on this money, it is permissible for him to give it in dollars or in the equivalent in another currency.
If the exchange rate varies, he should work it out on the basis of the highest rate at which he could exchange the dollars (for the local currency), taking into consideration the rights of the poor, lest the exchange of currency be used as a trick to give less than is due.
So if someone has one thousand dollars, the Zakah on this amount is 25 dollars, which he may give in three ways:

Giving the dollars to the poor
Taking the dollars and exchanging them for another currency, trying his best to get the highest rate of exchange, then giving the new currency to the poor
Not giving dollars; rather checking to see what the equivalent is in the other currency, then giving Zakah in the other currency, making sure that he works out the amount in the local currency according to the highest exchange rate that he could get for the dollars.

If there is the fear that he may be biased and unfair to the people who are entitled to Zakah, he should stick to the first and second options.
And Allah knows best.