c - 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;
}
它没有按照我想要的方式工作,所以我想要它的简写而不是创建一个函数。
那么有没有我可以使用的功能呢?
解决方案
如果floor()
您希望最小整数(最接近负无穷大)不超过浮点值,请使用。或者trunc()
用来获取不超过fp值大小的最小整数(最接近零)。
另外,请注意 .1 在二进制 fp 中具有重复表示,因此您编写的函数总是会出现问题。就像 1/3 变成十进制的 .3333 一样。
推荐阅读
- java - Java Spring Boot Web 应用在本地运行良好,但在部署到 azure Web 应用服务时出现 Whitelabel 错误页面
- linux - AWK - 语法错误:文件意外结束
- php - 如何使用 PDO 准备语句绑定多个值?
- javascript - Vue & Firebase:删除文档时 Dom 不更新
- typescript - 获取所有值表示标志枚举中的十进制值
- c++ - 可能 boost::asio::ip::udp::socket::send_to 甚至会失败?
- multithreading - 启动由信号量管理的多个线程
- python - 如何在 Selenium Python 中使用 WebDriverWait 触发可点击元素后从弹出窗口中检索数据?
- javascript - 将项目从函数推送到数组中
- c++ - 带有模板作为返回类型的 Trompeloeil MAKE_MOCK0