gpt4 book ai didi

c - 程序输出与手动计算不同,为什么会出现这种情况? C语言

转载 作者:行者123 更新时间:2023-11-30 20:59:39 24 4
gpt4 key购买 nike

#include <stdio.h>
#define s scanf
#define p printf
void main (){
int P,I,A;
float T,R;
clrscr();
p("PRINCIPAL: ");
s("%i",&P);
p("RATE: ");
s("%f",&R);
p("TERM: ");
s("%f",&T);
R = R/100;
I = P*R*T;
A = P+I;
p("I: %i\nMA: %i",I,A);
getch();
}

这真的让我烦恼,如果我输入 PRINCIPAL: 1200 RATE: 3 TERM:1 I: 35 MA: 1235 但如果你手动计算答案应该是 I: 36 MA: 1236 这个数字减少了 1。为什么它发生了吗?为什么答案与计算机和手工计算不同?

最佳答案

您尝试将 float 类型转换为 int,这会导致一些数据丢失。就像我们不能把大东西放进小包里一样。

#include <stdio.h>
#define s scanf
#define p printf
int main (){
int P;
float T,R,I,A;
p("PRINCIPAL: ");
s("%i",&P);
p("RATE: ");
s("%f",&R);
p("TERM: ");
s("%f",&T);
R = R/100;
I = P*R*T;
A = P+I;
p("\nI: %f\nMA: %f",I,A);
return 0;
}

关于c - 程序输出与手动计算不同,为什么会出现这种情况? C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307479/

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