关于double==0判断的优化

发布时间:2024-12-07 10:42

对于过于诱人的优惠,保持理性判断 #生活常识# #购物消费技巧# #网购防骗技巧#

2010-09-04 16:03  小尘 - 在希望的田野上  阅读(5160)  评论()  编辑  收藏  举报

double在内存中的存储方式如下:

在判断一个double值是否等于0的时候,计算机先要把这个double值转化为一个真正的值,而计算机对位运算时最快的,因此可以优化为如下代码:

public static bool IsNull(double f)
        {
            DoubleOrLong val = f;
            return val.IsZero;
        }

[StructLayout(LayoutKind.Explicit)]
        private struct DoubleOrLong
        {
            public static implicit operator DoubleOrLong(double f)
            {
                return new DoubleOrLong { D = f };
            }

            public bool IsZero
            {
                get { return U == 0u; }
            }

            [FieldOffset(0)]
            private double D;

            [FieldOffset(0)]
            private readonly ulong U;
        }

网址:关于double==0判断的优化 https://www.yuejiaxmz.com/news/view/405476

相关内容

if(list != null && list.size() > 0)优化,集合判空优雅的实现方式
如何判断一个数是否为2的N次方
C51——添加震动开盖功能,使用外部中断优化
非线性优化Ceres的学习和使用(一)
如何优化居住体验?怎样判断居住环境的优劣?
十分钟利用springboot写电商支持多种优惠券规则,使用策略模式替代大量的if
判断日期是星期几
重学 Java 设计模式:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」
DDR内存=Double Data Rate双倍速内存
ABCDE*?=EDCBA关于这个的优化算法

随便看看