Idiomatic D code to avoid or detect devision by zero

Steven Schveighoffer schveiguy at gmail.com
Fri Jul 31 14:18:15 UTC 2020


On 7/31/20 9:55 AM, Martin Tschierschke wrote:
> What would be the idiomatic way to write a floating point division
> occuring inside a loop and handle the case of division by zero.
> 
> c = a/b; // b might be zero sometimes, than set c to an other value (d).
> 
> (In the moment I check the divisor being zero or not, with an 
> if-than-else structure,
> but I find it ugly and so I ask here.)

c = b == 0 ? d : a/b;

I don't think a function would be shorter or clearer...

c = div(a, b, d);

Alternatively, you could use a type to effect the behavior you want.

-Steve


More information about the Digitalmars-d-learn mailing list