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是直接取整 ,而不是四舍五入哦!(C# double类型 对应 SQLServer  float类型)

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM