我有一个无法更改语法的函数,比如说这是我正在调用的一些库函数:
void schedule(double _val);
void caller() {
uint64_t value = 0xFFFFFFFFFFFFFFF;
schedule(value);
}
由于函数 schedule 接受 double 作为参数类型,如果参数的值大于 52 位(考虑 double 将尾数存储为 52 位值),我会在这种情况下失去精度。
我打算做的是,如果该值大于双精度可以容纳的最大值,我需要循环剩余的值,以便最终得出正确的值。
void caller() {
uint64_t value = 0xFFFFFFFFFFFFFFF;
for(count = 0; count < X ; count++) {
schedule(Y);
}
}
我需要从变量“值”中提取 X 和 Y。如何实现?我的目标不是因为类型铸造而降低精度。