C#中float向double转换时会发生精度丢失问题,测试代码如下:
结果为:
输入2.3
输出转换后的全部为2.9999995231628
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Text;
-
- namespaceFolat隐式转换为Double精度测试
- {
- classProgram
- {
- staticvoidMain(string[]args)
- {
- Console.WriteLine("请输入一个小数:");
- floata=float.Parse(Console.ReadLine());
- doubleb=a;
- doublec=Convert.ToDouble(a);
- doubled=(double)a;
- Console.WriteLine("floata:{0}",a);
- Console.WriteLine("隐式转换doubleb:{0}",b);
- Console.WriteLine("显示转换doublec:{0}",c);
- Console.WriteLine("强制转换doubled:{0}",c);
- Console.Read();
- }
- }
- }
结果为:
输入2.3
输出转换后的全部为2.9999995231628
本文通过一个示例展示了在C#中从float类型转换到double类型时可能遇到的精度丢失问题。通过不同的转换方式对比,揭示了这一现象并探讨其原因。
3398

被折叠的 条评论
为什么被折叠?



