0

我目前正在使用 C# 进行开发,我正在尝试从一个float值中获取一个数字并将其存储到int. 例如:

float f = 0.04;

我想int r = 4;

有没有办法做到这一点?我希望能够switch(r)

4

2 回答 2

4

在上面给出的情况下, 的f = 0.04和 的结果r=4
您可以乘以10until f > 0,如果 f ,这是必要的!=0

然后,要获得,r = 4您可以转换为整数。

int r = (int)f;

这应该可以解决问题。

于 2012-11-03T05:07:53.210 回答
2

虽然我真的不知道你是如何在不将字符附加到值末尾的情况下设置 a类型的float,但这是可能的!struct0.04F

我建议您此时首先将包含小数点的数字转换为字符串。然后,您可以在获取小数点后的数字后将其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)从 a 获取小数点后的值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注意:如果您愿意,可以使用您想要转换的所需结构进行更改用于转换除.GetDecimalsint
floatGetDecimals(float n)GetDecimalsfloat

谢谢,
我希望你觉得这有帮助:)

于 2012-11-03T05:32:23.203 回答