减法的结果是正的
Subtraction is giving me positive result C++
本文关键字:结果是 更新时间:2023-10-16
if (GoalWeight < 0.0) {
int weeks;
cout << "How many weeks do you plan to continue this trend?n";
cin >> weeks;
double NewWeight = GoalWeight * weeks;
double NegBMI = (weight - NewWeight) * 703 / (pow(HeightConverter, 2));
cout << "If you complete your plan for " << weeks << "weeks you will have a new BMI of: n" << NegBMI;
}
system("pause");
return 0;
}
输出结果:
你现在的体重是多少?: 180
你目前的身高是多少英寸?"71
您当前的BMI是:25.10(不是输出的一部分,但这是正确的)
你的目标体重变化是多少?(磅)-1.5
你打算让这种趋势持续几个星期?: 6
如果你完成6周的计划,你的新BMI将为:26.36
你可以看出这是错误的
BMI的计算方法是(体重* 703)/身高^2(英寸)
对于负数,它所做的是:
180 + 9(代替180 - 9)得到(191 * 703)/71^2,得到26.36
而不是:
我知道你们都在摇头说我一定是个白痴,这是有道理的,我希望有人能帮我解决这个问题!180 - 9(171 * 703)/71^2,得到正确输出:23.84
你的目标体重变化是多少?(磅)-1.5
你打算让这种趋势持续几个星期?: 6
6 * ( -1.5 ) == -9
180 - (-9) == 189
所以你要么输入目标权重变化为正数,要么加,而不是减。
由于您的语句6 * -1.5
,您的newWeight
结果为-9。如果您想减去它,只需使(weight + newWeight)
而不是-
。
您认为如果您执行(+NewWeight)
, NewWeight
的值会变为正值吗?
情况并非如此:
一元加运算符(+):对数字类型进行操作的结果是操作数本身的值。此操作符已预定义为所有数字类型。
作为一个解决方案,使用Reginalds的想法,使(weight + newWeight)
而不是-
。
相关文章:
- 为什么这个程序的结果是3 "born"?和 4 死
- 分配给浮点数的积分文字除法 - 为什么结果是错误的?
- C++初始化的结果是什么?
- 我的输出结果是 0 英寸C++.可能是什么问题
- 在C++中使用 fread() 来解释这个结果是什么?
- 为什么双算的结果是错误的?
- 为什么一个简单的C++程序会有错误的结果?是 #define 引起的吗?
- 在运行libtorch的模型时获得的结果是不正确的,该模型经过训练并从Pytorch出口
- 是迭代器增量结果是新的迭代器
- 结果是不同的;C++ 中的 recv(sock,buf,sizeof(buf),0) 和 strlen(buf)
- 非常量表达式的左值到右值转换的结果是常数吗?
- 将Execl命令的结果(是目录列表)输送到父进程
- 如果我将未签名的int添加到负int且算术结果是正面的,会发生什么
- decltype( (A{}.int_member) 的正确结果是什么)
- 当我们在int上进行操作时,结果是暂时存储在int中的结果
- 大端序中的以下代码的结果是什么
- 并发::when_all的结果是 FIFO 吗?
- 递归宏点差的结果是什么
- static_casting constexpr void* 的结果是常量表达式吗?
- 将双精度转换为 int 的结果是错误的