繁体   English   中英

四舍五入并将其重新转换为整数

[英]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.0000004.000000 我应该如何将它转换为int以获得上述答案34

您可以声明一个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;

更多static_cast这里,为什么你应该使用它来代替C风格的类型转换这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM