Recentemente ho provato il seguente programma & mi aspettavo errore di runtime ma mostra "nan" come output. Perché & Come? Sto usando il compilatore g ++.perché 0.0f/0.0f non genera alcun errore di runtime?
#include <iostream>
int main()
{
float f=0.0f/0.0f;
std::cout<<f;
return 0;
}
stesso modo ho anche cercato simile tipo di programma in Java & C# & si dimostra ancora una volta "nan" come output.
class Test
{
public static void main(String args[])
{
float f=0.0f/0.0f;
System.out.println(f);
}
}
class Test
{
public static void Main(string[] args)
{
float f=0.0f/0.0f;
Console.Write(f);
}
}
Voglio sapere che come aritmetica in virgola mobile è implementato & come differes da aritmetica intera. È un comportamento indefinito nel caso del C++? Se sì, perché? Per favore aiutatemi.
Perché è quello che dice la specifica in virgola mobile. https://en.wikipedia.org/wiki/IEEE_floating_point – SLaks
Un altro link: http://support.microsoft.com/kb/42980. –