# LowLevelFloatFunctions.jl

**URL:** <https://discourse.julialang.org/t/lowlevelfloatfunctions-jl/7749>\
**Category:** Community\
**Tags:** announcement, module\
**Created:** [December 13, 2017, 11:27pm UTC](https://discourse.julialang.org/t/lowlevelfloatfunctions-jl/7749 "2017-12-13T23:27:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)\
**Post date:** [December 13, 2017, 11:27pm UTC](https://discourse.julialang.org/t/lowlevelfloatfunctions-jl/7749/1 "2017-12-13T23:27:41Z")

</div>

Julia follows the IEEE754-2008 Standard for Floating Point Arithmetic. Float64, Float32 and Float16 values are stored and processed in accord with the standard. Each of these datatypes has a sign, a significand (mantissa) and an exponent.

**LowLevelFloatFloatFunctions** obtain, examine, alter, and reset each subfield.

> After months carefully recording measured masses in grams,  
> you notice the balance has been set to measure hexagrams.  
> Data privacy prohibits seeing measurements after acquisition.
> 
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 👨🏽‍🎓 ❔&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 👩🏼‍💻&nbsp;&nbsp;[LowLevelFloatFunctions.jl](https://github.com/JeffreySarnoff/LowLevelFloatFunctions.jl) ❕

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 14, 2017, 8:03am UTC](https://discourse.julialang.org/t/lowlevelfloatfunctions-jl/7749/2 "2017-12-14T08:03:00Z")

</div>

What is the additional functionality compared to `Base.Math.significand` and `Base.Math.exponent`?

---

<div class="post-metadata">

**Author:** ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)\
**Post date:** [December 14, 2017, 8:51am UTC](https://discourse.julialang.org/t/lowlevelfloatfunctions-jl/7749/3 "2017-12-14T08:51:56Z")

</div>

These functions allow you to alter each floating point field (get, modify, replace) individually while the rest of the floating point value’s bits are unmodified. As the system floats are immutable, replacing a subfield actually generates a new float with the bit logic as above.
