我正在做一些自定义序列化,为了节省一些空间,我想将小数序列化为 int,如果可能的话,值明智。性能是一个问题,因为我正在处理大量数据。我目前使用的方法是:
if ((value > Int32.MinValue) && (value < Int32.MaxValue) && ((valueAsInt = Decimal.ToInt32(value)) == value))
{
return true;
}
这可以改进吗?
最佳答案
你有负值吗?我猜是的,因为你有 MinValue 检查,否则你可以跳过它。您甚至可以使用 unsigned int,这样您就可以将更多的 double 值转换为整数。
编辑:此外,如果您有更多的正数,您可以交换前两个条件。这样第一个最有可能失败,减少了比较的总数。
关于c# - 确定小数是否可以存储为 int32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738577/