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#是不会四舍五入的~~~~
只会四舍六入五成双~~~~ --------------------编程问答--------------------
非也非也!!!!!
c#可以四舍五入的.
a.tostring("f3")就是保留3位小数,第四位四舍五入. --------------------编程问答-------------------- 你的精度问题啊 --------------------编程问答-------------------- decimal 用这个 --------------------编程问答-------------------- 不会! --------------------编程问答-------------------- double a = 51.206303388491975; 是不会错的,double可一精确到这 --------------------编程问答-------------------- 楼上瞎说,自己写代码试了没? --------------------编程问答-------------------- 你的精度问题啊 --------------------编程问答--------------------
摆脱你试试再说
decimal 也是会成为51.206303388492 --------------------编程问答-------------------- 学习了,试了下就是这样的 --------------------编程问答-------------------- ding --------------------编程问答--------------------
此楼生产答案 --------------------编程问答--------------------
像顺口溜 --------------------编程问答-------------------- UP!
补充:.NET技术 , C#