如何忽略十进制

本文关键字:十进制 何忽略 | 更新日期: 2023-09-27 18:35:20

我尝试这样做 - 将任何浮点值设置为整数值。我试图实现的是让它 2.00-2.99 变成 2。

注意:我不想做近似(低于 2.49 到 2,而那些 2.50+ 去 3)。

到目前为止,我已经这样做了

public int RemoveDecimal(float value)
{
    string TempText = (string)value;
    TempText.Remove(IndexOf('.'));
    return int.parse(TempText);
}

但是当浮点值以 .00 结尾时,这将出现错误

我怎样才能做到这一点?

感谢您的任何帮助

如何忽略十进制

Math.Floor 是你需要的函数。

它:

返回小于或等于指定数字的最大整数。

例:

var val = Math.Floor(value);

或者,您可以简单地转换为整数 - 这将简单地忽略小数部分,只要decimal的范围在int范围内(否则您将获得异常):

int noDecimals = (int)value;

不能总是将float转换为int,因为float中的大多数值都超出了int的范围。 您应该返回一个字符串。

下面就是这样。

public string RemoveDecimal(float value)
{
    string TempText = value.ToString("#");
    return TempText;
}

只需将浮点数转换为 int 即可完成您想要的操作。

i = (int)myFloat;

截断了小数位数,即它总是朝着0的方向前进。

(int)2    ==  2
(int)1.9  ==  1
(int)-1.5 == -1

如果结果超出int的有效范围,这显然无法正常工作。如果你想实现同样的事情,但结果是一个浮点数,Math.Truncate就是你需要的。