C#double强制转换成int

比如(int)(doubled)这样转换是舍去小数取整,Convert.toint32(doubled)是四舍五入取整,那我想要如果有小数直接进1取整,有没有这样的方法... 比如(int)(double d)这样转换是舍去小数取整,Convert.toint32(double d)是四舍五入取整,那我想要如果有小数直接进1取整,有没有这样的方法 展开
 我来答
陛下bb
2018-04-11 · TA获得超过1.1万个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:56.8万
展开全部

用Math.Ceiling,通过向上进位取整函数

例如:Math.Ceiling(32.4) 结果是33;Math.Ceiling(32.0) 结果是 32

与此对应的是向下舍位取整 Math.Floor。

第一种方式 强制类型转换

double d=1.5;

int i=(int)d;

强制类型转换采用的是截位方式,把小数点后面的数字统统舍弃,也就是说不管小数部分是几,哪怕是1.9也要舍弃,转换完会是1。

第二种方式 使用Round函数进行转换

double d=1.6

int i = Math.Round(d, 0);(保留0维小数就是取整)

第二种参数表示要保留的小数位数。

使用Round函数是四舍五入,而不是进行截位,保留小数点后面的数字。

例:Math.Floor(3.8)//返回小于或等于指定数字的最大整数,结果为3;

Math.Round(3.8)//将值舍入到最接近的整数或指定的小数位数,结果为4。

这两种转换方式要根据实际需要情况来进行转换。

actonst
推荐于2018-02-27 · TA获得超过1.8万个赞
知道大有可为答主
回答量:8184
采纳率:80%
帮助的人:5216万
展开全部
用Math.Ceiling,这是向上进位取整函数。
例如:Math.Ceiling(32.4) 结果是33; Math.Ceiling(32.0) 结果是 32

与此对应的是向下舍位取整 Math.Floor。
例如: Math.Floor(32.6) 结果是32
更多追问追答
追问
顺便再问一个,%是整除取余,/是整除取商,我想计算得到小数用哪个啊
追答
/是除法,不是整除取商。如果你的除数和被除数都是整数的话才是整除,如果其中一个是double的话,除出来的就是double。
如: 1 / 2 结果是 0, 而1.0 / 2 结果是 0.5
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanxun0403
2014-04-16 · TA获得超过101个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:122万
展开全部
可以用Math.Ceiling() 这个函数就是向上取整,不管小数点后面是什么都+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冥盅米粒bl
2014-04-16 · TA获得超过569个赞
知道小有建树答主
回答量:559
采纳率:100%
帮助的人:203万
展开全部
(int)Math.Ceiling(d)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式