C 没有得到正确的结果

标签 c

我在程序中需要这个变量的结果,但我不明白为什么我不能得到正确的结果。

double r = pow((3/2), 2) * 0.0001;
printf("%f", r);

最佳答案

问题是整数除法,小数部分(余数)被丢弃
尝试:

double r = pow((3.0/2.0), 2) * 0.0001;

的第一个参数 pow() 期望双倍。因为ratio:3/2使用整数值,所以传递给参数的结果是1。通过改为float值,除法的结果可以保留小数部分,结果变成1.5,函数期望的形式。

关于C 没有得到正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42958026/

相关文章:

C fscanf 读取方括号之间的内容

c - Floodfill 算法 C - 返回双数组?

c - 为什么将文本分配给指针会将内存位置存储到文本?

c++ - 如何在 C/C++ 中对二维数组求和

c - 从哪里开始(自)学习 C,或者我应该学习不同的语言?

不使用强制转换运算符比较 unsigned int 和 int

c - 我创建了自己的 Linux shell,但在登录时得到 "mctrl: Permission denied"?

c - 如何根据汇编中的地址调用printf函数

c - 在 C 中使用不同音量的 ALSA 播放多个 wav 文件

c - 基本字符串到 float 转换