gpt4 book ai didi

c - C如何计算混合的int和float数据类型

转载 作者:行者123 更新时间:2023-12-05 09:30:31 27 4
gpt4 key购买 nike

[已解决]

我正在学习C,在学习过程中遇到了一些问题。

当我尝试在一个等式中计算 int 数据类型和 float 数据类型时,我最终得到了 2 个不同的输出。我很困惑,因为从逻辑上讲结果应该是一样的。

这是我的代码版本 1 和版本 2。不同之处在于变量 z。

  • 第一种情况:z的值为1
  • 第二种情况:z的值为0

所有输入都是11

更新 1

感谢大家的评论和回答。但我仍然对变量 p 在情况 1 中扮演什么角色以及它如何导致变量 z 为 1 而不是 0 感到困惑?

案例一

int main()
{
float a, fee, p;
int x, y,z;
scanf("%f", &a);
fee = 0.6 * a;
x = (int)(fee);
y = (int)(2 * fee - 2 * x);
p = fee * 10.0;
z = (int)(p - 10 * x - 5 * y);
printf("%f %d %d %d", fee, x, y, z);
return 0;
}

案例二

int main()
{
float a, fee, p;
int x, y,z;
scanf("%f", &a);
fee = 0.6 * a;
x = (int)(fee);
y = (int)(2 * fee - 2 * x);
z = (int)(fee * 10.0 - 10 * x - 5 * y);
printf("%f %d %d %d", fee, x, y, z);
return 0;
}

最佳答案

1) z = (int)(p - 10 * x - 5 * y);
F I I I I // Float or Int

2) z = (int)(fee * 10.0 - 10 * x - 5 * y); // semicolon removed
F D I I I I // Float, Double or Int

1) 中的所有计算均以 float 精度完成,2) 中的所有计算均以 double 精度完成。

建议:在使用浮点值时始终优先使用 double

关于c - C如何计算混合的int和float数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69491552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com