摘要:利用ICSharpCode.TextEditor实现多文件类型的文本语法高亮(包括官方不包含的T-SQL脚本语法高亮)(含VS.NET2003解决方案) (全文共2377字)——点击
此处阅读全文
摘要:C# Code Review Checklist, 总共39条. 涵盖面比较广,但不是特别的全面. http://blog.csdn.net/montaque/archive/2004/08/09/69408.aspx (全文共10737字)——点击
此处阅读全文
四舍五入都是往右边计算:
-----(-5)-----(-4.6)(-4.5)(-4.4)-----(-4)----------(0)----------(4)-----(4.4)(4.5)(4.6)-----(5)-----
-----(-5)<---(-4.6)(-4.5)---------->(-4)----------(0)----------(4)<----------(4.5)(4.6)--->(5)-----
-------------------------------(-4.4)--->(-4)---------(0)-----------(4)<---(4.4)----------------------------
注意这些数字的位置关系,正数和负数并不是对称关系,Math.round()的运算时都是由左向右运算。
舍入方法叫做银行家舍入(Banker’sRound),这就是已经规定下来的标准、Round的标准、世界的标准。
也许我们习惯把Round与四舍五入等同,但是公式可能应该这样写。
Round <> 四舍五入
在微软的主页上也有比较详细的说明,
[url]http://support.microsoft.com/default.aspx?scid=http[/url]://support.microsoft.com:80/support/kb/articles/Q196/6/52.asp&NoWebContent=1
我们这个年代的过来的对四舍五入应该不陌生,但是什么是“银行家舍入”挺起来好像就有些过于专业,但是,现在在上小学的学生对此应该比我们更了解“银行家舍入”,因为它已经被写入了小学数学课本,而且是专门的一个章节。下面我就给大家介绍一下这两个舍入算法。
先看下面的对比表:
我们把原始数据舍入到小数点后两位:
原始数据 四舍五入 银行家舍入
1.000 1.00 1.00
1.111 1.11 1.11
1.444 1.44 1.44
1.465 1.47 1.46
1.555 1.56 1.56
1.565 1.57 1.56
1.666 1.67 1.67
1.849 1.85 1.85
1.999 2.00 2.00
银行家舍入算法用一句形象的话概括就是四舍六入五成双。
个人认为:当我们要使用一种合理的舍入方法来处理货币的时候,我们可以看到:
1 <-> 9
2 <-> 8
3 <-> 7
4 <-> 6
上面的含义是,我们遇到1舍去,那么9可以为此补上;2舍去,8可以来补上;……这样在大量随机数据中,舍去和补上就中和(暂且用这个词)。
5呢,我们到底是舍入还是进位呢。我们采取总是把被舍入处理的数进行双数化处理,这样我们的舍入和补上的比率又是1:1了,这样就能比较合理得处理货币的舍入问题。
我们再来看计算机语言对这些的支持,在IEEE里规定round函数就是要采用Banker’s rounding(银行家舍入)来处理。
C#,vs.net.j#,vbscript都是采用的四舍六入五成双
所以说我们(特指与我受过同样的小学数学教育的中国人)常用的四舍五入算法是不公平的,它总是把数值上推,而银行家舍入算法作为一种国际公认的算法是比较合理的,因此它也被写入了现代的小学数学书中,而且占用了一个章节
摘要:NMock简介 (全文共23142字)——点击
此处阅读全文
摘要:Mock Objects to the Rescue! Test Your .NET Code with NMock (全文共32194字)——点击
此处阅读全文
摘要:Aspect-Oriented Programming with C# and .NET (全文共171字)——点击
此处阅读全文
摘要:基于.NET的Java虚拟机IKVM介绍 (全文共13629字)——点击
此处阅读全文
摘要:Understand graphs and A* path-finding algorithm with C# (全文共25216字)——点击
此处阅读全文
摘要:C# 网络编程专题 (全文共107字)——点击
此处阅读全文