c - 定义为 double 和 int 的函数的输出

标签 c int double output

int i = 5;
int j = 3;
int k;
double a, b;

k = j / 2 * i / 10;
a = 0.1 * i * j / 2.0;
b = 0.1 * (j / i) + 3.0;

因此,通过手工计算,可以得到 k=0.75、a=0.75 和 b=3.06。然而,当我在 Visual Studio 中解决它时,我得到 0、0.75 和 3.00。我希望有人能阐明这一点。我知道 int 意味着只能输出整个值,但为什么 b = 3.00 而不是 3.06 因为 b 是 double 值?

最佳答案

您的所有变量都应该是double,因为如果它们是int,则会进行整数运算,并且您的结果将不包含小数位。

double i = 5;
double j = 3;
double k;
double a, b;

k = j / 2 * i / 10;
a = 0.1 * i * j / 2.0;
b = 0.1 * (j / i) + 3.0;

关于c - 定义为 double 和 int 的函数的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594379/

相关文章:

c - 结构初始化

java - 我需要生成一个十六进制表示的 32 位随机且唯一的数字

不能对 'double' 数字进行乘法运算

java - 双倍乘法与加法速度

java - 使用循环将 int 转换为 string,然后再转换回 int

java - Double to base 2 转换(有简单的方法吗?)

按位运算中的困惑

c - Linux 中 fork() 调用的来源在哪里?

C 函数头生成器

java - 正在进行多少次拆箱?