c#中int向float型转换。

今天发觉了一个让自己很疑惑的问题。就是在c#中int型可以隐式转换为float型吧,可它的精度只有7位,并且它这个精度是总的位数只有7位,不是说可以精确到小数点后7位吧。... 今天发觉了一个让自己很疑惑的问题。就是在c#中int型可以隐式转换为float型吧,可它的精度只有7位,并且它这个精度是总的位数只有7位,不是说可以精确到小数点后7位吧。可int型的最大值就已经超过了7位了,那它转换的时候不会出现问题吗?我知道float可以表示不int型大的数因为它有阶码。 展开
 我来答
爱学习爱教育的小豆丁
高粉答主

2019-10-10 · 教育达人一起学习
爱学习爱教育的小豆丁
采纳数:176 获赞数:138183

向TA提问 私信TA
展开全部

c#中int向float型转换:

1、用Convert方法。Convert.ToInt32(string),括号里的是需要转换的字符串。

2、Int32.Parse(string)和Int.Parse(string)。

3、Int32.TryParse(string,out int result)或int.TryParse(string,out int result)来转换。

TryParse的返回值是一个bool类型的值,指示是否转换成功,转换成功后第二个参数就是已经转换成功的值:

int result;

if(Int32.TryParse("20", out result)) 

{ //转换成功 }

else { //转换失败 }

扩展资料

当在int(假设int是32位的)、float和double格式之间进行强制类型转换时,原则如下:

从 int 转换成 float,数字不会溢出,但是可能被舍入。

从 int、float 转换成 double,能够保留精确的数值。因为 double 有更大的范围和更高的精度(有效位数)。

从 double 转换成 float,因为 float 范围要小一些,所以值可能溢出成 +∞ 或 -∞。另外由于float精度较小,还可能被舍入。

从 float、double 转换成 int,值将会向零舍入。如1.999会被转成1,-1.999会被转成-1。同时值可能会溢出。

参考资料来源:百度百科—c#

chuangen
推荐于2018-03-07
知道答主
回答量:16
采纳率:0%
帮助的人:14.7万
展开全部
楼主观察很细微啊。int到float转换精度会降低,如果需要较高精度,应该考虑使用double类型。如下分析:
第一点:从int(System.Int32)到float转换精度会降低。如下代码:
static void Main(string[] args)
{
Int32 number = Int32.MaxValue;
Console.WriteLine(number);
Console.WriteLine((float)number);
Console.ReadLine();
}
输出为:
2147483647
2.147484E+09
明显有效位数减少。

第二点:MSDN中有如下描述:
可在一个表达式中兼用数值整型和浮点型。在此情况下,整型将转换为浮点型。根据以下规则计算表达式:
如果其中一个浮点型为 double,则表达式的计算结果为 double 类型,在关系表达式或布尔表达式中为 bool 类型。
如果表达式中不存在 double 类型,则表达式的计算结果为 float 类型,在关系表达式或布尔表达式中为 bool 类型。

这样,如果表达式中只有int和float,可能得不到应有的精度,因此应该考虑将float转成double之后再进行运算。

共同探讨~~

参考资料: C#.NET2.0

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三根鞋带
2007-09-18 · TA获得超过2260个赞
知道大有可为答主
回答量:1156
采纳率:0%
帮助的人:0
展开全部
float的存储位是32比特,定义其为7位有效数字,这里的7位有效数字是说精度,不是说范围.
你可以使用double或decimal
其中double也使用double.ToString("0.000");来控制精度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nsdwn
2007-09-18 · TA获得超过193个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:145万
展开全部
float的精度是指有效数字的位数,不一定是指小数点后位数。float型数据也是用32位存储,由于有阶码,所以损失了部分精度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式