参考来源:http://ebreezee.itpub.net/post/23931/470549
方法1: int n=3;//例如取小数位3位 double a=1.1234567; int index = a.ToString().IndexOf(".");//取小数点所在位置索引 if (index + 1 + n > a.ToString().Length|| a.ToString().IndexOf(".")==-1)//索引大于长度或a为整数 string a3 = a.ToString();//a3以字符形式存放三位小数 else string a3 = a.ToString().Substring(0,index + 1 + n);//取需要的长度
方法2://更简单的方法见方法2 double a=2.3456; a= Math.Floor(a* 1000) / 1000;//取三位小数,2.345 double b=1; b= Math.Floor(b* 1000) / 1000;//1.0
方法3: (int)(a*1000)/1000好像也可以 -------
在一个程序中要保留4位数据。第5位数据以后的截掉。不四舍五入。 采用方法2。 网络上说: Round 四舍六入 Format 四舍五入 -- 自己用Format函数也会四舍五入的: ?format(0.23645654,"#0.0000") "0.2365" ?format(0.23644654,"#0.0000") "0.2364" ?formatnumber(0.23456,4,TriState.True,TriState.False ) "0.2346" ----------------------- 还有一种方法:Int(123.456 * 100 + 0.5) / 100 类似四舍五入的。 --------------------- Int、Fix 函数
Int 和 Fix 函数都移除 Number 的小数部分并返回得到的整数值。
Int 和 Fix 函数之间的区别在于:如果 Number 为负,则 Int 返回小于或等于 Number 的第一个负整数,而 Fix 返回大于或等于 Number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
Fix(number) 等效于 Sign(number) * Int(Abs(number)).
本示例演示了 Int 和 Fix 函数如何返回数字的整数部分。对于负数参数的情况,Int 函数返回小于或等于该数字的第一个负整数,而 Fix 函数返回大于或等于该数字的第一个负整数。下面的示例要求您指定 Option Strict Off,因为从类型 Double 到类型 Integer 的隐式转换在 Option Strict On 下不允许:
Visual Basic ' This code requires Option Strict Off Dim MyNumber As Integer MyNumber = Int(99.8) ' Returns 99. MyNumber = Fix(99.8) ' Returns 99.
MyNumber = Int(-99.8) ' Returns -100. MyNumber = Fix(-99.8) ' Returns -99.
MyNumber = Int(-99.2) ' Returns -100. MyNumber = Fix(-99.2) ' Returns -99. 在 Option Strict Off 的情况下,可以使用 CInt 函数将其他数据类型显式转换为类型 Integer。但是,CInt 并非截去数字的小数部分,而是舍入为最接近的整数。例如:
MyNumber = CInt(99.8) ' Returns 100. MyNumber = CInt(-99.8) ' Returns -100. MyNumber = CInt(-99.2) ' Returns -99.
可以先调用 Fix 或 Int,然后对调用后的结果使用 CInt 函数,以便在显式转换为整数时不四舍五入。例如:MyNumber = CInt(Fix(99.8)) ' Returns 99.MyNumber = CInt(Int(99.8)) ' Returns 99. (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|