Split Real / Float into Mantissa, Exponent, and Base

Marc Schütz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Mar 6 00:21:11 PST 2017


On Friday, 3 March 2017 at 18:09:02 UTC, Jonathan M. Wilbur wrote:
> I have tried to come up with a good way to get the mantissa, 
> exponent, and base from a real number, and I just can't come up 
> with a good cross-platform way of doing it. I know about 
> std.math.frexp(), but that function only gives you another real 
> as the mantissa. I need an integral mantissa, exponent, and 
> base.
>
> Is there either (1) a crafty, cross-platform way of doing this 
> or (2) a function in a standard library that does this that I 
> somehow missed? If there is no such function, what are your 
> thoughts on me implementing such a thing and submitting it to 
> Phobos, probably similar to how frexp is implemented (elseifs 
> for each FP format)?

See std.bitmanip.FloatRep and std.bitmanip.DoubleRep:

https://dlang.org/phobos/std_bitmanip.html#.FloatRep
https://dlang.org/phobos/std_bitmanip.html#.DoubleRep


More information about the Digitalmars-d-learn mailing list