c - 计算球体体积后打印错误的结果
问题描述
这是我的代码:
#include <stdio.h>
#define PI 3.141592f
#define RADIUS 10.0f
int main(void)
{
float volume;
volume = (4.0f/3.0f) * PI * (RADIUS * RADIUS * RADIUS);
printf("Volume: %d\n", volume);
return 0;
}
它错误地打印了 value 536870912
。
我究竟做错了什么?据我所知,数学是对的。
解决方案
%d
用于打印int
,因此传递float
给它会调用未定义的行为。
您应该使用%f
or%g
来打印float
.
推荐阅读
- html - 对齐标题、段落和图像
- gnuplot - 如何在 Gnuplot 中重命名“fit.log”?
- django - Django order_by() 不能与 distinct() 一起使用
- python - 使用比较时如何简化长 if/elif 语句
- c++ - 在 Visual Studio 代码中为 C++ 构建和运行当前活动文件
- asp.net - 如何为剃须刀页面创建一个孤立的组件?
- javascript - 如何为箭头函数编写替代代码?
- r - 为什么测试趋势日志排名结果与 R survMisc 和 survminer 包中的数字或分类变量不同?
- angular - Angular ngFor 循环遍历字典
- bash - 具有多个参数的用户添加