Simple question: Will the conversion from an int, say 100, to a double "round" up or down to the next double or will it always round to the nearest one (smallest delta)?
e.g. for static_cast<double>(100):
Which way will it cast if d2 < d1?
Bonus question: Can I somehow force the processor to "round" down or up to the closes double using special functions? As I see it, there's no floor<double> or ceil<double> unfortunately.

Note that a 32-bit
intcan be represented exactly by a 64-bit IEEE 754double(it can actually represent up to 53-bit integers precisely).If you're using an integer that is larger than can be represented by your floating point type then the rules at Real floating-integer conversions apply:
There is no c++ standard function to control the rounding mode, most implementations will use the IEEE round to nearest.