c#取小数点后三位_VB.NetC#-取小数点后几位但不四舍五入的方法

导读热词

方法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.

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值