我从滑块控件传递一个字符串值,需要以整数的形式进行处理。目前,如果我选择值3,则传递的实际字符串值为3.74
。
我尝试通过获取滑块值字符串roundMax
,将其转换为int然后将其值赋给整数标志变量roundMaxFlag
来解决此问题。
int roundMaxFlag = Convert.ToInt64(Math.Round(Convert.ToDouble(roundMax)));
此方法无效,因为我无法implicitly convert type long to int
。
有谁知道如何从roundMax
转换字符串值并将其作为整数存储在roundMaxFlag
中?
我认为可以使用上面的代码行完成,因为我错过了一个额外的演员?
答案 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
)