如何解析和舍入字符串值到最近的整数?

时间:2014-11-09 17:11:28

标签: c# casting int string-parsing

我从滑块控件传递一个字符串值,需要以整数的形式进行处理。目前,如果我选择值3,则传递的实际字符串值为3.74

我尝试通过获取滑块值字符串roundMax,将其转换为int然后将其值赋给整数标志变量roundMaxFlag来解决此问题。

int roundMaxFlag = Convert.ToInt64(Math.Round(Convert.ToDouble(roundMax)));

此方法无效,因为我无法implicitly convert type long to int

有谁知道如何从roundMax转换字符串值并将其作为整数存储在roundMaxFlag中?

我认为可以使用上面的代码行完成,因为我错过了一个额外的演员?

value being passed over in roundMax

3 个答案:

答案 0 :(得分:2)

您可以使用名为Convert.ToInt32的方法,因为您将结果分配给int(Int32)而不是long int(Int64)。

您收到的错误消息,无法将类型long隐式转换为int。表达上述内容。对于int的表示,使用32位。而对于long int的表示,使用64位。因此,您无法分配给需要32位值的变量,即64位值。

答案 1 :(得分:0)

尝试Math.Ceiling

需要一个数字并将其向上舍入到最接近的整数,即:

string mystr = "7.83"
int roundMaxFlag = convert.ToInt64(mystr);    // converting string to int 64
roundMaxFlag = Math.Ceiling(roundMaxFlag));   // rounding value to next upward integer

希望这有帮助。

答案 2 :(得分:0)

只需添加0.5并使用广告int转换为(int)和/或截断,即可转换为最接近的整数。 (注意:以这种方式舍入负数,请改用-0.5