首页 > 解决方案 > C中是否有一个函数可以取变量的最大整数值?

问题描述

我做了一个程序,可以得到一个浮点值的最大积分:

#include <stdio.h>

float get_value(float a);

int main() {
    float num = 4.58;
    float new_val = get_value(num);
    printf("%f \n", new_val);
}

float get_value(float a) {
    int c = a;
    for (int i = 0; i < 99; i++) {
        a -= 0.01;
        if (a == c) {
            break;
        }
    }
    return a;
}

它没有按照我想要的方式工作,所以我想要它的简写而不是创建一个函数。

那么有没有我可以使用的功能呢?

标签: c

解决方案


如果floor()您希望最小整数(最接近负无穷大)不超过浮点值,请使用。或者trunc()用来获取不超过fp值大小的最小整数(最接近零)。

另外,请注意 .1 在二进制 fp 中具有重复表示,因此您编写的函数总是会出现问题。就像 1/3 变成十进制的 .3333 一样。


推荐阅读