您的位置:程序门 -> .net技术 -> c#



0.3333333,我想保留2位小数,c#怎么实现?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


0.3333333,我想保留2位小数,c#怎么实现?
发表于:2007-03-13 14:00:59 楼主
0.3333333,我想保留2位小数,c#怎么实现?
发表于:2007-03-13 14:04:021楼 得分:0
float   i=0.333333;
int   j=(int)(i   *   100);
i   =     j/100;
发表于:2007-03-13 14:04:232楼 得分:0
format?
发表于:2007-03-13 14:07:183楼 得分:0
decimal.round(decimal.parse(0.3333333),2)
发表于:2007-03-13 14:07:524楼 得分:0
decimal.round(decimal.parse( "0.3333333 "),2)
发表于:2007-03-13 14:08:195楼 得分:0
math.round(0.333333,2);//看参数要求
发表于:2007-03-13 14:08:576楼 得分:0
math.round()
发表于:2007-03-13 14:11:417楼 得分:0
jf
发表于:2007-03-13 15:12:298楼 得分:0
1、

math.round(0.333333,2);//按照四舍五入的国际标准
2、
double   dbdata=0.335333;
string   str1=string.format( "{0:f} ",dbdata);//默认为保留两位
发表于:2007-03-13 15:19:189楼 得分:0
xxx.tostring( "f2 ");
发表于:2007-03-13 15:21:2010楼 得分:0
private   system.globalization.numberformatinfo   nfi   =   new   system.globalization.numberformatinfo();

float   test=0.333333f;
nfi.numberdecimaldigits=2;
string   result=test.tostring( "n ",   nfi);
发表于:2007-03-13 15:24:0111楼 得分:0
string   result=   string.format( "{0:n2} ",convert.todecimal( "0.333333 ").tostring());

3位{0:n3}....
发表于:2007-03-13 15:26:4812楼 得分:0
好象是:
stirng   s= "0.333333 ";
string   result=s.tostring(0. "## ");
发表于:2007-03-13 16:02:5513楼 得分:0
xxx.tostring( "f2 ");
发表于:2007-03-13 16:17:4414楼 得分:0
format看看
发表于:2007-03-13 16:21:4015楼 得分:0
zine_alone(老鼠都给猫当伴娘了.哎.)
his   answer   is   perfect
发表于:2007-03-13 16:23:5816楼 得分:0
string   a   =a.tostring( ".## ")
这样就可以了.
发表于:2007-03-13 16:28:4817楼 得分:0
好贴,学习
发表于:2007-03-13 16:35:3918楼 得分:0
double   d=   58360.3152;
this.textbox1.text   =   d.tostring( "f ");
发表于:2007-03-13 16:42:1119楼 得分:0
string   a   =a.tostring( ".## ")
发表于:2007-03-13 16:49:3220楼 得分:0
mark   .
发表于:2007-03-13 16:54:1621楼 得分:0
北京招聘
asp.net开发工程师
1、计算机专业本科以上学历;
2、精通asp.net、c#、mssqlserver等技术及相关开发工具;
3、熟练掌握uml建模,至少熟悉一种建模软件;  
4、熟悉数据库操作,有面向对象基础。熟悉三层开发构架;
5、应聘者请附上曾开发的项目实例或说明;
6、有较强的合作、沟通能力,具有团队精神与团队合作经验
email:hr@sinohousing.com
工作地点:
北京望京科技园利泽中园或北京电子城科技园区   [靠近望京和酒仙桥地区]
公司简介:
北京澳荷瑞科技有限公司位于北京望京科技创业园内。作为一家年轻的留学生人员企业,澳荷瑞公司充满着年轻的活力和国际化的背景。澳荷瑞公司将以科技信息交流和服务,以及科技软件和网络研发为主要业务,致力于发展以网络为平台的房屋信息服务(http://www.sinohousing.com)   和wto规则方面的相关软件开发。公司采用西方以人为本的管理模式,将十分重视员工的发展。  
公司由留欧归国人员创办,所提供的工作十分富有挑战性,工作前景也十分看好。公司非常欢迎愿意接受挑战的,能够吃苦耐劳的年轻人一起工作。本公司正处于创业阶段,公司规模不大,但公司有自己的独特发展思路和模式。所以对于马上想去大型公司工作的人才止步。公司很年轻,需要靠大家一起努力。
  有意者请将个人简历发至:hr@sinohousing.com.   我公司将以最快的速度回复符合条件的潜在人选。
发表于:2007-03-13 17:02:5222楼 得分:0
lwjvince(insert   into   you(memory)values(my   all   life))  
     
1、

math.round(0.333333,2);//按照四舍五入的国际标准
2、
double   dbdata=0.335333;
string   str1=string.format( "{0:f} ",dbdata);//默认为保留两位


說得很具體了
   
 
发表于:2007-03-13 18:53:5423楼 得分:0
楼上的正解..
发表于:2007-03-13 19:09:5324楼 得分:0
double   a   =   1;
double   b   =2;
math.round(a/b,2)
发表于:2007-03-13 19:22:1725楼 得分:0
string   strtmp   =   double.parse( "0.3333333 ").tostring( "#0.00 ");

楼上的其他很多方法也是可行的。
发表于:2007-03-13 19:31:3726楼 得分:0
学习~!
发表于:2007-03-13 19:34:3827楼 得分:0

发表于:2007-03-13 19:38:0828楼 得分:0
支持   format   函数`
发表于:2007-03-13 20:41:5229楼 得分:0
我来总结下:
1.只要求保留n位不四舍5入

                float   f   =   0.55555f;
                int   i   =(int)(f   *   100);
                f   =   (float)(i*1.0)/100;
  2.保留n位,四舍五入     .                

decimal   d=   decimal.round(decimal.parse( "0.55555 "),2);

3.保留n位四舍五入

math.round(0.55555,2)

4,保留n位四舍五入
                double   dbdata   =   0.55555;
                string   str1   =     dbdata.tostring( "f2 ");//fn   保留n位,四舍五入

5.保留n位四舍五入


                string   result   =   string.format( "{0:n2} ",   0.55555);//2位

string   result   =   string.format( "{0:n3} ",   0.55555);//3位

6.         保留n位四舍五入


    double   s=0.55555;
            result=s.tostring( "#0.00 ");//点后面几个0就保留几位
发表于:2007-03-14 09:11:1230楼 得分:0
我的程序里的四舍五入
都是用自写的函数完成的...
系统自带的那些,用的所谓“银行家算法”,虽然说起来比4舍5入科学,但和习惯不一致
发表于:2007-06-28 15:39:1531楼 得分:0
decimal   i   =   decimal.round(decimal.parse( "2.045 "),   2)
返回2.04,而不會四舍五入,是不是微軟浮點類型的bug啊?
发表于:2007-06-28 17:11:2632楼 得分:0
方法很多把      
发表于:2007-06-28 17:31:1033楼 得分:0
学习..
发表于:2007-06-28 17:36:1534楼 得分:0
decimal   i   =   decimal.round(decimal.parse( "2.045 "),   2)
返回2.04,而不會四舍五入,是不是微軟浮點類型的bug啊?
-----------------
banker舍入算法...正确的...不是bug...

我国的四舍五入算法在大量样本统计中误差太大...不被国际认可...
发表于:2007-06-28 17:41:0535楼 得分:0
.tostring( "0.00 ")就可以了,使用round,或函数都不是我们国家需要的
发表于:2007-06-28 20:54:5736楼 得分:0
double   v   =   0.3333333;
string   strv   =   v.tostring().substring(0,4);
double   v2   =   convert.todouble(strv);
发表于:2007-06-28 21:22:1737楼 得分:0
要不要四舍五入看需求了~

.tostring( "0.00 ")就可以了,使用round,或函数都不是我们国家需要的??这个什么意思
发表于:2007-06-29 01:26:0338楼 得分:0
math.round要慎用,默认不是四舍五入,而是所谓的银行家算法,当比精度大一位的数是5时,舍入后的最后一位都往偶数靠。
例如,
                        double   x   =   2.255;   //   奇数,所以进位
                        double   y   =   2.265;   //   偶数,所以不进位

                        messagebox.show(math.round(x,   2).tostring());
                        messagebox.show(math.round(y,   2).tostring());


发表于:2007-06-29 01:29:5639楼 得分:0
比精度大一位的数不是5时,就是我们习惯的四舍五入
例如,下面两数做round保留2位时都返回2.26
   
                    double   x   =   2.256;  
                    double   y   =   2.264;
发表于:2007-06-29 02:21:5740楼 得分:0
学习~!~


快速检索

最新资讯
热门点击