我目前正在开发C#,我正在尝试从float
值获取一个数字并将其存储到int
。例如:
float f = 0.04;
我想要int r = 4;
有办法做到这一点吗?我希望能够switch(r)
。
答案 0 :(得分:4)
在上面给出的情况下,f = 0.04
和r=4
的结果。
您可以乘以10
到f > 0
,这在f !=0
时是必要的。
然后,要获得r = 4
,您可以转换为整数。
int r = (int)f;
应该完成这个技巧。
答案 1 :(得分:2)
虽然我真的不知道你是怎么设法将float
类型struct
设置为0.04
而不将F
字符附加到值的末尾,这是可能的!
我建议您此时将包含小数点的数字转换为字符串。然后,您可以在获得小数点后的数字后使用Int32.Parse(string s)
将其转换为int
示例强>
private Int32 GetDecimals(float n)
{
string s = n.ToString("#.#########", System.Globalization.CultureInfo.InvariantCulture); //Convert the value to string
return Int32.Parse(s.Substring(s.IndexOf(".") + 1)); //Return what's after the decimal point from the value as Int
}
然后,您可以使用GetDecimals(float n)
从float
获取小数点后的值。
示例强>
float f = 0.04F; //Initialize a new float of name f
int r = 0; //Initialize a new int of name r
r = GetDecimals(f); //Set r to 4
注意:如果您希望获取输出中任意其他结构的小数点后的值,则可以使用所需的输出更改Int32
中的GetDecimals
比int
注意:如果您想使用float
转换其他结构,您可以使用想要转换的所需结构更改GetDecimals(float n)
中的GetDecimals
结构类型而不是float
。
谢谢, 我希望你觉得这很有帮助:)