Wenn ich ein int
habe, wandle es in ein double
um, dann wandle das double
zurück in ein int
, bekomme ich garantiert den gleichen Wert zurück, mit dem ich angefangen habe? Mit anderen Worten, diese Funktion gegeben:Ist int-> double-> int garantiert werthaltig?
int passThroughDouble(int input)
{
double d = input;
return d;
}
Am garantiert, dass ich passThroughDouble(x) == x
für alle int
s x
?
Es hängt von der Größe von int, z. für 64 bit ints wird das definitiv nicht funktionieren. Bei 32 Bit wird es * wahrscheinlich * funktionieren. –
'Assert (std :: numeric_limits :: Ziffern <= std :: numeric_limits :: Ziffern);' - http://en.cppreference.com/w/cpp/types/numeric_limits/digits –
sehe
@sehe: Sicherlich Du meinst 'static_assert'. : P – GManNickG