C#中当把浮点型强制转换为整型时为什么四舍五入了而不是舍去小数部分?

double转int类型,四舍五入了【流泪猫头鹰】,导致多算了钱!!我不要四舍五入!

在 DAL层转int  : database.AddInParameter(sqlCommand, "@Amount", DbType.Int32, model.Amount);
测试用Convert.ToInt32(@Amount) 

以上结果都是四舍五入而不是取整,结果如图

我后面是用的分割取整 .Split('.') 

今天百度才知道:

如果使用(int)
比如:double b = 12.6; int a = (int)b; // 此时a的值为12
如果使用Convert
比如:double b = 12.6; int a = Convert.ToInt32(b); //此时a的值为13

可以根据需求灵活运用需要的转换类型提升精度。

原来如此~~ 原来我直接(int)转就好了 【流泪】

 3. 使用Math.Floor()取整 

注意: 
数据库CAST(float AS int) float转int是直接取整 ,而不是四舍五入哦!

好了,现在你想四舍五入还是取整 任君选择 

 

posted @ 2021-07-10 10:01  哈哈咖咖  阅读(1616)  评论(0编辑  收藏  举报