获得小数点后面的数字

时间:2012-11-03 05:02:40

标签: c# math decimal digit

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

float f = 0.04;

我想要int r = 4;

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

2 个答案:

答案 0 :(得分:4)

在上面给出的情况下,f = 0.04r=4的结果。
您可以乘以10f > 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中的GetDecimalsint
注意:如果您想使用float转换其他结构,您可以使用想要转换的所需结构更改GetDecimals(float n)中的GetDecimals结构类型而不是float

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