[英]Rounding off and recast it as integer
double num1=3.3;
double num2=3.8;
//print output and round off
cout<<floor(num1+0.5)<<endl;
cout<<floor(num2+0.5)<<endl;
我的任务是先将数字四舍五入,然后将其转换为整数:四舍五入后 num1 和 num2 的输出应分别为3.000000
和4.000000
。 我应该如何将它转换为int
以获得上述答案3
和4
?
您可以声明一个int
变量并分配floor
的结果,然后输出该int
。 也不再需要地板,因为分配给int
是隐式的。
int i1 = num1+0.5;
cout<<i1<<endl;
请注意,在您当前的代码中, floor()
实际上没有任何帮助,因为您正在丢弃结果。 floor
没有修改它的参数,而是返回它的结果,并且你没有将它分配给任何东西。 例如,您可以使用num1 = floor(num1+0.5);
然后num1
将包含结果。
cout<<floor(num1+0.5)<<endl;
将打印3.0
。 你不需要更多的演员在这里,但如果你想这样做,使用static_cast
:
double num1=3.3;
double num2=3.8;
// to round off
int num1_as_int = static_cast<int>(floor(num1+0.5));
int num2_as_int = static_cast<int>(floor(num2+0.5));
//print output
cout<<num1_as_int<<endl;
cout<<num2_as_int<<endl;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.