Why pow() won't go beyond 2^31?
Daniel Kozak
kozzi11 at gmail.com
Thu Nov 29 09:22:27 UTC 2018
On Thu, Nov 29, 2018 at 8:10 AM Murilo via Digitalmars-d-learn <
digitalmars-d-learn at puremagic.com> wrote:
> I am using the function pow() from std.math but if I try pow(2,
> 32) it returns 0, it doesn't compute beyond the maximum value of
> an int(2^31) and I am working with long. What should I do?
>
if you look at doc: https://dlang.org/phobos/std_math.html#.pow.2
you will see that return type is infered from pow arguments, so if both
arguments are int for example the return value would be int too
https://run.dlang.io/is/FMVJhY
so if you want to have long as output one of your args should be (u)long or
you can enforce that by
pow!long(2,32);
https://run.dlang.io/is/WlDfsE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20181129/5581df79/attachment.html>
More information about the Digitalmars-d-learn
mailing list