C#中float向double转换时会发生精度丢失

来源:互联网 发布:哈尔滨发展前景 知乎 编辑:程序博客网 时间:2024/05/16 11:08
C#中float向double转换时会发生精度丢失问题,测试代码如下:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;

  4. namespace Folat隐式转换为Double精度测试
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Console.WriteLine("请输入一个小数:");
  11.             float a = float.Parse(Console.ReadLine());
  12.             double b = a;
  13.             double c = Convert.ToDouble(a);
  14.             double d = (double)a;
  15.             Console.WriteLine("float  a:{0}", a);
  16.             Console.WriteLine("隐式转换 double b:{0}", b);
  17.             Console.WriteLine("显示转换 double c:{0}", c);
  18.             Console.WriteLine("强制转换 double d:{0}", c);
  19.             Console.Read();
  20.         }
  21.     }
  22. }

结果为:
输入2.3
输出转换后的全部为2.9999995231628

原创粉丝点击