7个回答
展开全部
1、首先 double 类型时,在C#中是素双精度浮点类型。
一般在显示的时候如果要求保留两位小数点时,最快捷的办法是使用 string.Format("{0:F2}",double) 直接保留两位小数点输出。
2、若需要考虑到2位后面的数据进行计算四舍五入。
则使用:Math.Round(45.367,2,MidpointRounding.AwayFromZero); //Returns 45.37
扩展资料:
double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数,即双精度浮点型。
占8 个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证。
在C语言中可以用格式化输入输出语句scanf和printf进行double类型的输入输出,格式化字符为%lf。
参考资料来源:百度百科-双精度浮点型
展开全部
在C#中大家都会遇到这种情况 double类型的数据,需要格式化(保留N未有效数字)或者是保留N为小数等情况,我们往往采取double.tostring("参数");的方法。下面就列出几个常用的方法。
double temp=3.1415926;
(F)Fixed point:string str1=temp.toString("f1");//保留一位小数 四舍五入 结果:3.1
(F)Fixed point:string str2=temp.toString("f2");//保留两位小数,四舍五入 下面一次类推 结果:3.14
(N)Number:string str2=temp.toString("N");//保留 结果:3.14
(G)General (default):string str2=temp.toString("G");//保留 结果:3.1415926
(P)Percent:string str2=temp.toString("P");//保留 结果:314.16%
(E)Scientific:string str2=temp.toString("E");//保留 结果E:3.141593E+000
(C)Currency:string str2=temp.toString("C");//保留 结果:¥3.14
对于double temp=0.000000926的情况,上述方法都不管用,可以通过转成decimal格式再显示。如下所示:
string str = ((decimal)temp).toString();
double temp=3.1415926;
(F)Fixed point:string str1=temp.toString("f1");//保留一位小数 四舍五入 结果:3.1
(F)Fixed point:string str2=temp.toString("f2");//保留两位小数,四舍五入 下面一次类推 结果:3.14
(N)Number:string str2=temp.toString("N");//保留 结果:3.14
(G)General (default):string str2=temp.toString("G");//保留 结果:3.1415926
(P)Percent:string str2=temp.toString("P");//保留 结果:314.16%
(E)Scientific:string str2=temp.toString("E");//保留 结果E:3.141593E+000
(C)Currency:string str2=temp.toString("C");//保留 结果:¥3.14
对于double temp=0.000000926的情况,上述方法都不管用,可以通过转成decimal格式再显示。如下所示:
string str = ((decimal)temp).toString();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-29
展开全部
方式很多,列出以下三种:
double d = Math.Round(0.239768451, 2); //d=0.24
string s = 0.239768451.ToString("0.##"); //s=0.24
string ss = String.Format("{0:F} ", 0.239768451); //ss=0.24
以上方法均为四舍五入,不四舍五入的方法好像要编一个函数来解决。把这个数划分为整数部分和小数部分,小数部分转为字符串,然后从非零部分截取两位。
double d = Math.Round(0.239768451, 2); //d=0.24
string s = 0.239768451.ToString("0.##"); //s=0.24
string ss = String.Format("{0:F} ", 0.239768451); //ss=0.24
以上方法均为四舍五入,不四舍五入的方法好像要编一个函数来解决。把这个数划分为整数部分和小数部分,小数部分转为字符串,然后从非零部分截取两位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double bbb= System.Math.Round(1.2201201, 2);
输入的 double 值为 1.2201201,
处理结果为 1.22
输入的 double 值为 1.2201201,
处理结果为 1.22
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double string.Format("{0:N2",1.23456);
N后边的数字2即为保留的位数
结果为1.23
N后边的数字2即为保留的位数
结果为1.23
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询