On Tuesday, 6 September 2016 at 15:00:48 UTC, Sai wrote:
Thanks for the replies.

I tend to use a lot of float math (robotics and automation) so I almost always want float output in case of division. And once in a while I bump into this issue.

I am wondering what are the best ways to work around it.

    float c = a / b;     // a and b could be integers.

Some solutions:

    float c = cast!float(a) / b;
    float c = 1f * a / b;


Any less verbose ways to do it?

Another solution I am thinking is to write a user defined integer type with an overloaded division to return a float instead and use it everywhere in place of integers. I am curious how this will work out.

Exotic way:

import std.stdio;

float div(float a, float b) { return a / b; }

void main()
{
        
        auto c = 3.div(4);
        writeln(c);
}



Reply via email to