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

时间:2016-10-11 11:44:47

标签: c++ int double rounding

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

2 个答案:

答案 0 :(得分:3)

您可以声明private void methodUsingMyClass() { getMyClass().doStuff(); } 变量并分配int的结果,然后输出floor。也不再需要发言权,因为分配给int会隐含地这样做。

int
int i1 = num1+0.5;

请注意,在您当前的代码中,cout<<i1<<endl;实际上并没有任何帮助,因为您丢弃了结果。 floor()未修改其参数,但返回其结果,并且您没有将其分配给任何内容。你可以使用,例如,
floor
然后num1 = floor(num1+0.5);将包含结果。

答案 1 :(得分:2)

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

有关URL : https://$USERNAME:$APIKEY@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={"virtualGuests":{"tagReferences":{"tag":{"name":{"operation":"in","options":[{"name":"data","value":["$tag1","$tag2"]}]}}}}} Method: GET Note: replace $tag1 and $tag2 with the tags you wish here的更多信息,以及为什么要使用它而不是C风格的演员here