• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

将对象转换为int而不舍入

c/c++ 来源:user3477485 6次浏览

我必须将对象转换为int。我的对象值类似于1.34535 我需要的是第一部分是(1)。将对象转换为int而不舍入

我尝试了以下方法: – Convert.ToInt32(myObj.Value),它将数字四舍五入。如果它是1.78,我知道了(2)这是错误的。我只需要第一部分的整数。

  • int.TryParse(myObj.Value.toString(), out outValue) 我得到了它0所有值!

  • int.Parse(myObj.Value.toString())引发异常,即格式不正确。


===========解决方案如下:

如果myObj.Value盒装double,那么你必须投两次:到拆箱double,然后以截断成int

int result = (int)((double)(myObj.Value)): 

在一般情况下,请尝试Convert;这个想法是一样的:先还原一部开拓创新double,然后获取所需int

int result = (int) (Convert.ToDouble(myObj.Value)); 

编辑:在执行上面的我读过没有四舍五入请求作为截断,即小数部分应被忽略

2.4 -> 2 
-2.4 -> -2 

如果不同是正常现象,如

2.4 -> 2 
-2.4 -> -3 

可以添加Math.Floor例如,

int result = (int) (Math.Floor(Convert.ToDouble(myObj.Value))); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)