如何忽略十进制
本文关键字:十进制 何忽略 | 更新日期: 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
就是你需要的。