我应该如何获得浮点值的小数部分?
我有一个xtype变量float,我需要它的小数部分。我知道我可以得到它
x - floorf(x), 或者fmodf(x, 1.0f)
我的问题:其中一个总是比另一个更可取吗?它们实际上是一样的吗?我可以考虑第三种选择吗?
笔记:
- 如果答案取决于我正在使用的处理器,那就让它成为 x86_64,如果你能详细说明其他处理器,那会很好。
- 请确保并参考 的负值行为
x。我不介意这种行为或那种行为,但我需要知道这种行为是什么。
回答
我可以考虑第三种选择吗?
有专门的功能。modff用于将数字分解为其整数部分和小数部分。
float modff( float arg, float* iptr );将给定的浮点值分解
arg为整数部分和小数部分,每个部分与 具有相同的类型和符号arg。整数部分(浮点格式)存储在 指向的对象中iptr。