Single.NaN Bidang
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili bukan angka (NaN
). Bidang ini konstan.
public: float NaN = NaN;
public const float NaN = NaN;
val mutable NaN : single
Public Const NaN As Single = NaN
Nilai Bidang
Value = NaNContoh
Contoh berikut menunjukkan konstanta NaN .
Single zero = 0;
// This condition will return false.
if ( (0 / zero) == Single::NaN )
{
Console::WriteLine( "0 / 0 can be tested with Single::NaN." );
}
else
{
Console::WriteLine( "0 / 0 cannot be tested with Single::NaN; use Single::IsNan() instead." );
}
Single zero = 0;
// This condition will return false.
if ((0 / zero) == Single.NaN)
{
Console.WriteLine("0 / 0 can be tested with Single.NaN.");
}
else
{
Console.WriteLine("0 / 0 cannot be tested with Single.NaN; use Single.IsNan() instead.");
}
let zero = 0f
// This condition will return false.
if 0f / zero = Single.NaN then
printfn "0 / 0 can be tested with Single.NaN."
else
printfn "0 / 0 cannot be tested with Single.NaN use Single.IsNan() instead."
Dim zero As Single = 0
' This condition will return false.
If (0 / zero) = Single.NaN Then
Console.WriteLine("0 / 0 can be tested with Single.NaN.")
Else
Console.WriteLine("0 / 0 cannot be tested with Single.NaN; use Single.IsNan() instead.")
End If
Keterangan
Metode atau operator kembali NaN ketika hasil operasi tidak terdefinisi. Misalnya, hasil pembagian nol dengan nol adalah NaN, seperti yang ditunjukkan contoh berikut. (Tetapi perhatikan bahwa membalah angka bukan nol dengan nol mengembalikan baik PositiveInfinity atau NegativeInfinity, tergantung pada tanda pembavisor.)
float zero = 0.0f;
Console.WriteLine("{0} / {1} = {2}", zero, zero, zero/zero);
// The example displays the following output:
// 0 / 0 = NaN
let zero = 0f
printfn $"{zero} / {zero} = {zero / zero}"
// The example displays the following output:
// 0 / 0 = NaN
Dim zero As Single = 0
Console.WriteLine("{0} / {1} = {2}", zero, zero, zero/zero)
' The example displays the following output:
' 0 / 0 = NaN
Selain itu, panggilan metode dengan NaN nilai atau operasi pada NaN nilai mengembalikan NaN, seperti yang ditunjukkan contoh berikut.
float nan1 = Single.NaN;
Console.WriteLine("{0} + {1} = {2}", 3, nan1, 3 + nan1);
Console.WriteLine("Abs({0}) = {1}", nan1, Math.Abs(nan1));
// The example displays the following output:
// 3 + NaN = NaN
// Abs(NaN) = NaN
let nan1 = Single.NaN
printfn $"{3} + {nan1} = {3f + nan1}"
printfn $"Abs({nan1}) = {abs nan1}"
// The example displays the following output:
// 3 + NaN = NaN
// Abs(NaN) = NaN
Dim nan1 As Single = Single.NaN
Console.WriteLine("{0} + {1} = {2}", 3, nan1, 3 + nan1)
Console.WriteLine("Abs({0}) = {1}", nan1, Math.Abs(nan1))
' The example displays the following output:
' 3 + NaN = NaN
' Abs(NaN) = NaN
IsNaN Gunakan metode untuk menentukan apakah nilai bukan angka. Secara umum, Single operator tidak dapat digunakan untuk membandingkan Single.NaN dengan nilai lain Single , meskipun metode perbandingan (seperti Equals dan CompareTo) dapat. Contoh berikut menggambarkan perbedaan perilaku antara Single operator perbandingan dan metode.
using System;
public class Example
{
public static void Main()
{
Console.WriteLine("NaN == NaN: {0}", Single.NaN == Single.NaN);
Console.WriteLine("NaN != NaN: {0}", Single.NaN != Single.NaN);
Console.WriteLine("NaN.Equals(NaN): {0}", Single.NaN.Equals(Single.NaN));
Console.WriteLine("! NaN.Equals(NaN): {0}", ! Single.NaN.Equals(Single.NaN));
Console.WriteLine("IsNaN: {0}", Double.IsNaN(Double.NaN));
Console.WriteLine("\nNaN > NaN: {0}", Single.NaN > Single.NaN);
Console.WriteLine("NaN >= NaN: {0}", Single.NaN >= Single.NaN);
Console.WriteLine("NaN < NaN: {0}", Single.NaN < Single.NaN);
Console.WriteLine("NaN < 100.0: {0}", Single.NaN < 100.0f);
Console.WriteLine("NaN <= 100.0: {0}", Single.NaN <= 100.0f);
Console.WriteLine("NaN >= 100.0: {0}", Single.NaN > 100.0f);
Console.WriteLine("NaN.CompareTo(NaN): {0}", Single.NaN.CompareTo(Single.NaN));
Console.WriteLine("NaN.CompareTo(100.0): {0}", Single.NaN.CompareTo(100.0f));
Console.WriteLine("(100.0).CompareTo(Single.NaN): {0}", (100.0f).CompareTo(Single.NaN));
}
}
// The example displays the following output:
// NaN == NaN: False
// NaN != NaN: True
// NaN.Equals(NaN): True
// ! NaN.Equals(NaN): False
// IsNaN: True
//
// NaN > NaN: False
// NaN >= NaN: False
// NaN < NaN: False
// NaN < 100.0: False
// NaN <= 100.0: False
// NaN >= 100.0: False
// NaN.CompareTo(NaN): 0
// NaN.CompareTo(100.0): -1
// (100.0).CompareTo(Single.NaN): 1
open System
printfn $"NaN == NaN: {Single.NaN = Single.NaN}"
printfn $"NaN != NaN: {Single.NaN <> Single.NaN}"
printfn $"NaN.Equals(NaN): {Single.NaN.Equals Single.NaN}"
printfn $"! NaN.Equals(NaN): {not (Single.NaN.Equals Single.NaN)}"
printfn $"IsNaN: {Double.IsNaN Double.NaN}"
printfn $"\nNaN > NaN: {Single.NaN > Single.NaN}"
printfn $"NaN >= NaN: {Single.NaN >= Single.NaN}"
printfn $"NaN < NaN: {Single.NaN < Single.NaN}"
printfn $"NaN < 100.0: {Single.NaN < 100f}"
printfn $"NaN <= 100.0: {Single.NaN <= 100f}"
printfn $"NaN >= 100.0: {Single.NaN > 100f}"
printfn $"NaN.CompareTo(NaN): {Single.NaN.CompareTo Single.NaN}"
printfn $"NaN.CompareTo(100.0): {Single.NaN.CompareTo 100f}"
printfn $"(100.0).CompareTo(Single.NaN): {100f.CompareTo Single.NaN}"
// The example displays the following output:
// NaN == NaN: False
// NaN != NaN: True
// NaN.Equals(NaN): True
// ! NaN.Equals(NaN): False
// IsNaN: True
//
// NaN > NaN: False
// NaN >= NaN: False
// NaN < NaN: False
// NaN < 100.0: False
// NaN <= 100.0: False
// NaN >= 100.0: False
// NaN.CompareTo(NaN): 0
// NaN.CompareTo(100.0): -1
// (100.0).CompareTo(Single.NaN): 1
Module Example
Public Sub Main()
Console.WriteLine("NaN = NaN: {0}", Single.NaN = Single.NaN)
Console.WriteLine("NaN <> NaN: {0}", Single.NaN <> Single.NaN)
Console.WriteLine("NaN.Equals(NaN): {0}", Single.NaN.Equals(Single.NaN))
Console.WriteLine("Not NaN.Equals(NaN): {0}", Not Single.NaN.Equals(Single.NaN))
Console.WriteLine("IsNaN: {0}", Double.IsNaN(Double.NaN))
Console.WriteLine()
Console.WriteLine("NaN > NaN: {0}", Single.NaN > 100.0f)
Console.WriteLine("NaN >= NaN: {0}", Single.NaN >= 100.0f)
Console.WriteLine("NaN < NaN: {0}", Single.NaN < Single.NaN)
Console.WriteLine("NaN < 100.0: {0}", Single.NaN < 100.0f)
Console.WriteLine("NaN <= 100.0: {0}", Single.NaN <= 100.0f)
Console.WriteLine("NaN >= 100.0: {0}", Single.NaN > 100.0f)
Console.WriteLine("NaN.CompareTo(NaN): {0}", Single.NaN.CompareTo(Single.Nan))
Console.WriteLine("NaN.CompareTo(100.0): {0}", Single.NaN.CompareTo(100.0f))
Console.WriteLine("(100.0).CompareTo(Single.NaN): {0}", (100.0f).CompareTo(Single.NaN))
End Sub
End Module
' The example displays the following output:
' NaN == NaN: False
' NaN != NaN: True
' NaN.Equals(NaN): True
' ! NaN.Equals(NaN): False
' IsNaN: True
'
' NaN > NaN: False
' NaN >= NaN: False
' NaN < NaN: False
' NaN < 100.0: False
' NaN <= 100.0: False
' NaN >= 100.0: False
' NaN.CompareTo(NaN): 0
' NaN.CompareTo(100.0): -1
' (100.0).CompareTo(Single.NaN): 1