| |
|
|
IT知识库 -> C# -> 取整、保留小数等数字处理方法 -> 正文阅读 |
[C#]取整、保留小数等数字处理方法 |
后台数据类型为decimal a,在前台页面中显示时需要显示为整数。 我的做法是Convert.ToInt32(a),这样做是强制把内容转换为整数,改变了数据本来的意义。 最终做法是Math.Round(a,0),将a的小数值舍入为指定精度。 1.先看Math.Round()方法,是将值舍入到最接近的整数或指定的小数位数。 MSDN上可以看到有这些重载的方法。 |
![]() |
Math.Round(3.44, 1); //Returns 3.4. Math.Round(3.45, 1); //Returns 3.4. Math.Round(3.46, 1); //Returns 3.5. MSDN上给出的示例 可以看到这个“舍入”不是四舍五入,而是银行家舍入:四舍六入五取偶法。规则是当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶,则直接舍去该位。 2.再看 Convert.ToInt32(value d)方法,是一种强制类型转换。 如果 value 为两个整数中间的数字,则返回二者中的偶数,即 4.5 转换为 4,而 5.5 转换为 6,同样也是银行家舍入。 总结:同样是对decimal取整,二者区别是:前者只是将小数点舍入到指定精度,没有改变数据的类型,而后者进行强制转换改变了数据的类型。 提到了强制类型转换为整数,(int)方法和Convert.ToInt32(),可以看到如下区别: |
![]() |
(int)方法直接截取整数部分,而Convert.ToInt32()采取银行家舍入方式。 另还有int.Parse(string s)方法,参数必须为string类型,而且该string类型的参数,在实际意义上也应为int类型, |
![]() |
|
上一篇文章 下一篇文章 查看所有文章 |
|
C# 最新文章 |
字符串阵列分别输出元素的索引,原值和长度 |
格式化你的字符串 |
C#宣告一个变量 |
C#中级 |
拆分一个字符串并把每个字符单独输出 |
通过手机号定位归属地 |
C# DBNULL与NULL之间的区别【转】 |
Xamarin |
List,DataTable实现行转列的通用方案 |
C# 语音识别 |
![]() |
![]() |
![]() |
![]() |
360图书馆
软件开发资料
文字转语音
购物精选
软件下载
新闻资讯
小游戏
Chinese Culture
股票
三丰软件
开发
中国文化
网文精选
阅读网
看图
日历
万年历
2019年2日历 2019-2-16 12:34:38 |
|
网站联系: qq:121756557 email:121756557@qq.com IT知识库 |