Photo by David Kovalenko at Unsplash
Took me an hour or so to figure out why something I had ported from C# to PowerShell was not working, and the culprit is how casting of decimals to bytes work.
In .Net: (byte)4.6 = 4, meaning it truncates
In PowerShell [byte]4.6 = 5, meaning it rounds up
The solution is to use [Math]::Floor instead in PowerShell, which of course works fine in .Net as well.