猿问

一个浮点数精度问题,呼唤达人

谁能解释一下下面这个现象:

(double)(float)0.6
0.60000002384185791
(double)0.6f
0.60000002384185791
(double)(6/10f)
0.6
(double)(float)(6/10f)

0.6

6/10f 明明是个float,为什么转换成double后和0.6f转成double的结果不一样?


海绵宝宝撒
浏览 548回答 2
2回答

慕沐林林

楼主是否可以把源码帖出,我测试了一下:   class Program    {        static void Main(string[] args)        {            Console.WriteLine((double)(float)(6/10f));        }    }运行结果为:0.600000023841858。你需要查一下double精度的有效位。
随时随地看视频慕课网APP
我要回答