當前位置: 首頁>>代碼示例>>C#>>正文


C# Double.Equals方法代碼示例

本文整理匯總了C#中System.Double.Equals方法的典型用法代碼示例。如果您正苦於以下問題:C# Double.Equals方法的具體用法?C# Double.Equals怎麽用?C# Double.Equals使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Double的用法示例。


在下文中一共展示了Double.Equals方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1:

// Initialize two doubles with apparently identical values
double double1 = .333333;
double double2 = (double) 1/3;
// Define the tolerance for variation in their values
double difference = Math.Abs(double1 * .00001);

// Compare the values
// The output to the console indicates that the two values are equal
if (Math.Abs(double1 - double2) <= difference)
   Console.WriteLine("double1 and double2 are equal.");
else
   Console.WriteLine("double1 and double2 are unequal.");
開發者ID:.NET開發者,項目名稱:System,代碼行數:12,代碼來源:Double.Equals

示例2:

// Initialize two doubles with apparently identical values
double double1 = .33333;
double double2 = 1/3;
// Compare them for equality
Console.WriteLine(double1.Equals(double2));    // displays false
開發者ID:.NET開發者,項目名稱:System,代碼行數:5,代碼來源:Double.Equals

示例3: Main

//引入命名空間
using System;

public class Example
{
   public static void Main()
   {
      double value1 = .1 * 10;
      double value2 = 0;
      for (int ctr = 0; ctr < 10; ctr++)
         value2 += .1;
         
      Console.WriteLine("{0:R} = {1:R}: {2}", value1, value2,
                        HasMinimalDifference(value1, value2, 1));
   }

   public static bool HasMinimalDifference(double value1, double value2, int units)
   {
      long lValue1 = BitConverter.DoubleToInt64Bits(value1);
      long lValue2 = BitConverter.DoubleToInt64Bits(value2);
      
      // If the signs are different, return false except for +0 and -0.
      if ((lValue1 >> 63) != (lValue2 >> 63))
      {
         if (value1 == value2)
            return true;
          
         return false;
      }

      long diff = Math.Abs(lValue1 - lValue2);

      if (diff <= (long) units)
         return true;

      return false;
   }
}
開發者ID:.NET開發者,項目名稱:System,代碼行數:38,代碼來源:Double.Equals

輸出:

01 = 0.99999999999999989: True

示例4: Main

//引入命名空間
using System;

public class Example
{
   static double value = 112;
   
   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,16}", value.Equals(short1));
      TestObjectForEquality(short1);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,18}", value.Equals(int1));
      TestObjectForEquality(int1);

      long long1 = 112;
      Console.WriteLine("value = long1: {0,17}", value.Equals(long1));
      TestObjectForEquality(long1);
      
      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,16}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      uint uint1 = 112;
      Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1));
      TestObjectForEquality(uint1);

      ulong ulong1 = 112;
      Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1));
      TestObjectForEquality(ulong1);
      
      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      float sng1 = 112;
      Console.WriteLine("value = sng1: {0,19}", value.Equals(sng1));
      TestObjectForEquality(sng1);
   }

   private static void TestObjectForEquality(Object obj)
   {
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj));
   }
}
開發者ID:.NET開發者,項目名稱:System,代碼行數:58,代碼來源:Double.Equals

輸出:

value = byte1:             True
112 (Double) = 112 (Byte): False

value = short1:             True
112 (Double) = 112 (Int16): False

value = int1:               True
112 (Double) = 112 (Int32): False

value = long1:              True
112 (Double) = 112 (Int64): False

value = sbyte1:             True
112 (Double) = 112 (SByte): False

value = ushort1:             True
112 (Double) = 112 (UInt16): False

value = uint1:               True
112 (Double) = 112 (UInt32): False

value = ulong1:              True
112 (Double) = 112 (UInt64): False

value = dec1:                 False
112 (Double) = 112 (Decimal): False

value = sng1:                True
112 (Double) = 112 (Single): False

示例5:

// Initialize two doubles with apparently identical values
double double1 = .33333;
object double2 = 1/3;
// Compare them for equality
Console.WriteLine(double1.Equals(double2));    // displays false
開發者ID:.NET開發者,項目名稱:System,代碼行數:5,代碼來源:Double.Equals


注:本文中的System.Double.Equals方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。