当前位置:编程学习 > C#/ASP.NET >>

ToString()后为何将Double类型的值四舍五入了?

double a = 51.206303388491975;

            string b = a.ToString();

            Console.WriteLine(b);



结果为:51.206303388492 --------------------编程问答-------------------- double a = 51.206303388491975;

            //string b = a.ToString();

            Console.WriteLine(a);
            Console.Read();
一样是这个结果  因为你给a的赋值就大于了double的精度 自动舍去了 --------------------编程问答-------------------- 楼上正解!~!~! --------------------编程问答-------------------- 浮点数只能近似于十进制数字,浮点数的精度决定了浮点数近似于十进制数字的精确程度。默认情况下,Double 值的精度是 15 个十进制位,但内部维护的最大精度是 17 位。

Console.WriteLine(a); 也是一样 --------------------编程问答-------------------- jf --------------------编程问答-------------------- C++里有个显示小数点后指定位的函数
不知道C#里面用什么 --------------------编程问答-------------------- 顶啊..我不懂~晕 --------------------编程问答-------------------- mark --------------------编程问答-------------------- double a = 51.206303388491975;

            //string b = a.ToString();

            Console.WriteLine(a);
            Console.Read();
一样是这个结果  因为你给a的赋值就大于了double的精度 自动舍去了
--------------------编程问答-------------------- stephen0126() 
三星的人了  还copy别人的回复-_-# --------------------编程问答-------------------- 这个跟float只能有7位一样的 --------------------编程问答-------------------- 提醒一句
c#是不会四舍五入的~~~~
只会四舍六入五成双~~~~ --------------------编程问答--------------------
引用 11 楼 lovefootball 的回复:
提醒一句
c#是不会四舍五入的~~~~
只会四舍六入五成双~~~~


非也非也!!!!!
c#可以四舍五入的.
a.tostring("f3")就是保留3位小数,第四位四舍五入. --------------------编程问答-------------------- 你的精度问题啊 --------------------编程问答-------------------- decimal 用这个 --------------------编程问答-------------------- 不会! --------------------编程问答-------------------- double   a   =   51.206303388491975; 是不会错的,double可一精确到这 --------------------编程问答-------------------- 楼上瞎说,自己写代码试了没? --------------------编程问答-------------------- 你的精度问题啊 --------------------编程问答--------------------
引用 14 楼 wuxing2006 的回复:
decimal 用这个

摆脱你试试再说

decimal 也是会成为51.206303388492 --------------------编程问答-------------------- 学习了,试了下就是这样的 --------------------编程问答-------------------- ding --------------------编程问答--------------------
引用 1 楼 red_angelx 的回复:
double   a   =   51.206303388491975;

                        //string   b   =   a.ToString();

                        Console.WriteLine(a);
                        Console.Read();
一样是这个结果     ……


此楼生产答案 --------------------编程问答--------------------
引用 11 楼 lovefootball 的回复:
提醒一句
c#是不会四舍五入的~~~~
只会四舍六入五成双~~~~


像顺口溜 --------------------编程问答-------------------- UP!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,