I’m not a compute shader expert, but I’ve doodled with them a bit and I stumbled into InterlockedAdd issue too. From what I read in the Microsoft HLSL manual, it’s indeed stated that only int and uint are supported (InterlockedAdd function (HLSL reference) - Win32 apps | Microsoft Learn).
You could convert your floats to ints (or uints), by multiplying them with a large value that still fits to the required range (int -2,147,483,648 to 2,147,483,647, uint 0 to 4,294,967,295). This might of course create some inaccuracy to your simulation but it’s one workaround? Depends a lot on the thing you are doing, if small deviations in values matter or not.
And to answer your question about floats, I’m not sure if there’s a way to use them. Someone more knowledgeable should answer that.