On 1/19/21 9:28 PM, Per Nordlöw wrote:
On Tuesday, 19 January 2021 at 16:14:17 UTC, drug wrote:
   https://dlang.org/phobos/std_bitmanip.html#FloatRep

Doesn't this pattern already cover all possible cases of `value` needed?

void f(double value)
{
     auto lvalue = cast(long)value;
    if (lvalue == value) // `value` lacks fraction and in range [long.min .. long.max]
     {
         // use long lvalue
         return;
     }
     // use double value
}


Sure. You don't even need to use isFinite like I wrote above because special values like inf and nan become some long values and will never equal to itself.

Your question motivated me to do a little workout for my brains. Sorry if it confused you.

Reply via email to