弱弱的问下float 怎么准确转换到double float x=1.23;double a= Convert.ToDouble(x);MessageBox(a.ToString());后面多了很多小数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 float x = 1.23f; decimal a = Convert.ToDecimal(x) ; double d = Convert.ToDouble(a); MessageBox.Show(d.ToString());用decimal float x = 1.23f; double a = double.Parse(x.ToString()); Console.WriteLine(a.ToString()); 我试着回答一下:1、错误提示?double是64为双精度,隐式转换为32位的float会造成精度丢失,所以当然不能转换,除开你用一些关键字(好像是checked)标识下,而c#默认1.23为double型,所以会有错误提示,你加个f标识为float即可;2、多了很多小数位?因为无论double还是float,都是ieee754标准的浮点数,1.23这种小数是无法精确表示的,因此32位float的1.23转为64位的double时,结果也会出现很小的误差,至于会是多少,可以使用浮点数和ieee754表示法工具去自己测试一下。 用Math.Round将无效的尾数四舍五入下。 float的前七位是正确的。取前七位就可以了。 1、float x=1.23;你这样不能编译通过要在后面加f2\从float到double的转换是宽转换,所以可以直接float x = 1.23F;double z = x;Console.WriteLine(z.ToString("f2"));3、值保存的格式与显示是两回事,所以f2让它显示两位小数 float x=1.23;double a= Convert.ToDouble(x);MessageBox(a.ToString("f2"));保留2位小数 ADO.NET,请教DataTableMapping类 C# 关键字可以定义别称吗? sql 列行转换 怎么让我自己用C#做的桌面应用程序可以不用去控制面板卸载,自带一个卸载功能? VS2005 使用问题?? C# windows 编程中,只想把数据绑定到 DataGrid 控件上怎么就这么难啊 编译错误 求助 发新闻的功能如何实现对于格式的编辑 ? 请教如何使用serialPort控件发送数据~!急~!!!!!!!! 请问如何用C#从win2000系统中获取win16程序的句柄 既菜且菜的小菜鸟再次求教 关于DateTime.Compare的问题 ---急求助
decimal a = Convert.ToDecimal(x) ;
double d = Convert.ToDouble(a);
MessageBox.Show(d.ToString());用decimal
float x = 1.23f;
double a = double.Parse(x.ToString());
Console.WriteLine(a.ToString());
double是64为双精度,隐式转换为32位的float会造成精度丢失,所以当然不能转换,除开你用一些关键字(好像是checked)标识下,而c#默认1.23为double型,所以会有错误提示,你加个f标识为float即可;2、多了很多小数位?
因为无论double还是float,都是ieee754标准的浮点数,1.23这种小数是无法精确表示的,因此32位float的1.23转为64位的double时,结果也会出现很小的误差,至于会是多少,可以使用浮点数和ieee754表示法工具去自己测试一下。
2\从float到double的转换是宽转换,所以可以直接
float x = 1.23F;
double z = x;
Console.WriteLine(z.ToString("f2"));
3、值保存的格式与显示是两回事,所以f2让它显示两位小数
double a= Convert.ToDouble(x);
MessageBox(a.ToString("f2"));
保留2位小数