c# - 通过查看字节来检查 decimal 是否包含小数位

标签 c# decimal

here中也有类似的问题.有时该解决方案会给出异常(exception)情况,因为数字可能很大。

我认为如果有一种方法可以查看十进制数的字节,那将会更有效率。例如,十进制数必须由 n 个字节数表示。例如,一个 Int32 由 32 位表示,所有以 1 位开头的数字都是负数。也许与十进制数字有某种类似的关系。您如何查看十进制数的字节?还是整数的字节数?

最佳答案

如果您真的在谈论十进制 数(相对于 float ),那么Decimal.GetBits将使您查看小数的各个位。 MSDN 页面还包含对位含义的描述。

另一方面,如果你只是想检查一个数字是否有小数部分,做一个简单的

var hasFractionalPart = (myValue - Math.Round(myValue) != 0)

比解码二进制结构容易。这应该适用于小数以及经典的 float 据类型,例如 floatdouble。在后一种情况下,由于浮点舍入误差,检查 Math.Abs(myValue - Math.Round(myValue)) < someThreshold 可能有意义。而不是与 0 进行比较.

关于c# - 通过查看字节来检查 decimal 是否包含小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197723/

相关文章:

ios - 当值等于 10 时删除小数,否则不删除

c# - 使用 group by 时如何对 Linq 中两个日期时间之间的减法时间跨度求和?

c# - 在 WPF 中对原始图像应用放大/缩小

javascript - 四舍五入到最多 2 位小数(仅当它有小数位时)(JavaScript)

c# - 将 int 转换为 decimal 选择放置小数位的位置

excel - 如何将小数转换为分数而不是将结果转换为文本?

c# - 使用 fluentvalidation 和 asp.net mvc LessThanOrEqualTo 不触发的不显眼的客户端验证

c# - 如何使用 C# 将 xml-stylesheet 标签添加到 XML 文件?

c# - Entity Framework - 将组合框绑定(bind)到规范化表字段

c# - c#中小数计算错误