Comments (4)
Hey, this isn't a bug. When you assign integers to a fixed, it's giving it the
literal binary representation. It's not particularly pretty but C/C++ are
pretty limited in this regard, there's no way to add in our own number parser
to correctly parse a fixed point number and the only way to accurately
initialize is an int.
I think there's an issue ticket somewhere to make this more clear. If you want
to initialize a number as a float then you'll have to use the conversion
functions.
The integer value 32767 is actually 0.5 in Q16.
Original comment by [email protected]
on 8 Jan 2013 at 3:23
- Changed state: Invalid
from libfixmath.
Thanks for the quick reply!
Original comment by [email protected]
on 8 Jan 2013 at 3:29
from libfixmath.
Yeah, to clear things up for anyone else who might read this bug report later,
you need to do it like this:
fix16_t value1 = fix16_from_int(123);
float value2 = fix16_to_float(value1);
For declaring constant values, you can also use shorthand macro F16(), like
this:
fix16_t value3 = F16(1234.53); // Works for int, float, double arguments
Original comment by Petteri.Aimonen
on 8 Jan 2013 at 3:33
from libfixmath.
I would also like to point out that the F16 macro is not part of the code thats
in the downloads section as of 1/8/13 but it is in the latest commit of the
repository.
Original comment by [email protected]
on 8 Jan 2013 at 3:48
from libfixmath.
Related Issues (20)
- div defect HOT 2
- Rounding broken for negative numbers HOT 5
- Problem with sdiv.. HOT 19
- C++ Fix16 cast operators should be const. HOT 1
- Optimize caching on trig functions
- Unittests fail on division, on x86_64 architecture. HOT 10
- compiler error after setting #define FIXMATH_NO_OVERFLOW HOT 2
- left shift count >= width of type HOT 1
- >= 0 comparison might be more efficient than > 0 comparison HOT 1
- atan2 incorrect HOT 5
- fix16_str_unittests fails (MSYS/windows) HOT 1
- FIXMATH_FAST_SIN gives rounding error HOT 1
- libfixmath for cortex m0 HOT 2
- fix16_div bug due to __builtin_clzl HOT 4
- Probably error in log2 functions test for skipping decimal part
- Unary minus on unsigned type HOT 1
- 32-bit multiplication seems to be way off for some values HOT 3
- Fix16(const fix16_t inValue) should be removed
- lerp overflows
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libfixmath.