here中也有类似的问题.有时该解决方案会给出异常(exception)情况,因为数字可能很大。
我认为如果有一种方法可以查看十进制数的字节,那将会更有效率。例如,十进制数必须由 n 个字节数表示。例如,一个 Int32 由 32 位表示,所有以 1 位开头的数字都是负数。也许与十进制数字有某种类似的关系。您如何查看十进制数的字节?还是整数的字节数?
最佳答案
如果您真的在谈论十进制 数(相对于 float ),那么Decimal.GetBits将使您查看小数的各个位。 MSDN 页面还包含对位含义的描述。
另一方面,如果你只是想检查一个数字是否有小数部分,做一个简单的
var hasFractionalPart = (myValue - Math.Round(myValue) != 0)
比解码二进制结构多容易。这应该适用于小数以及经典的 float 据类型,例如 float 或 double。在后一种情况下,由于浮点舍入误差,检查 Math.Abs(myValue - Math.Round(myValue)) < someThreshold
可能有意义。而不是与 0
进行比较.
关于c# - 通过查看字节来检查 decimal 是否包含小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197723/