日期:2014-05-17  浏览次数:20420 次

关于Asp.net【字符串与数值】的转换问题?简单!
我是初学者,有以下几个转换问题,希望大家给予帮助,谢谢!
是Asp.net,在vs2010调试!

C# code


   string sss_1 = "20.32";
   string sss_2="15.67";
   string sss_3=sss_1+sss_2;   //  想让sss_3=sss_1+sss_2(显示结果是35.99)
   string sss_4=sss_1+sss_2;   //  想让sss_3=sss_1+sss_2(显示结果是36(两个数相加四舍五入))
   string sss_5=sss_1+sss_2;   //  想让sss_3=sss_1+sss_2(显示结果是35(两个数分别取整后相加))

   Response.Write(sss_3+"<br>");  // 【显示为:35.99】                          
   Response.Write(sss_4+"<br>");  // 【显示为:36】                          
   Response.Write(sss_5+"<br>");  // 【显示为:35】                          

   // ---------------------------------------------

   float aaa1 = 3.15f;
   string aaa2=aaa1.tostring();   // 想取出数为:3.2 (也就是保留一位,四舍五入)
   string aaa3=aaa2.tostring();   // 想取出数为:3.1(也就是直接保留一位小数)
   string aaa4=aaa3.tostring();   // 想取出数为:3(也就是取整)

   Response.Write(aaa2+"<br>");  // 【显示为:3.2】                          
   Response.Write(aaa3+"<br>");  // 【显示为:3.1】                          
   Response.Write(aaa4+"<br>");  // 【显示为:3】                          








------解决方案--------------------
Convert.ToDouble(sss_1)+Convert.ToDouble(sss_2)
Math.Round(Convert.ToDouble(sss_1)+Convert.ToDouble(sss_2))
Math.Floor(Convert.ToDouble(sss_1)+Convert.ToDouble(sss_2))
------解决方案--------------------
C# code

            string sss_1 = "20.32";
            string sss_2 = "15.67";
            double result = Convert.ToDouble(sss_1) + Convert.ToDouble(sss_2);
            string sss_3 = result.ToString();   //  想让sss_3=sss_1+sss_2(显示结果是35.99)
            string sss_4 = Math.Round(result).ToString();   //  想让sss_3=sss_1+sss_2(显示结果是36(两个数相加四舍五入))
            string sss_5 = ((int)Convert.ToDouble(sss_1) + (int)Convert.ToDouble(sss_2)).ToString();   //  想让sss_3=sss_1+sss_2(显示结果是35(两个数分别取整后相加))

            Response.Write(sss_3 + "<br>");  // 【显示为:35.99】                          
            Response.Write(sss_4 + "<br>");  // 【显示为:36】                          
            Response.Write(sss_5 + "<br>");  // 【显示为:35】                          

            // ---------------------------------------------

            float aaa1 = 3.15f;
            string aaa2 = (Math.Round((aaa1 * 10))/10).ToString();   // 想取出数为:3.2 (也就是保留一位,四舍五入)
            string aaa3 = (Math.Floor((aaa1 * 10)) / 10).ToString();   // 想取出数为:3.1(也就是直接保留一位小数)
            string aaa4 = ((int)aaa1).ToString();   // 想取出数为:3(也就是取整)

            Response.Write(aaa2 + "<br>");  // 【显示为:3.2】                          
            Response.Write(aaa3 + "<br>");  // 【显示为:3.1】                          
            Response.Write(aaa4 + "<br>");  // 【显示为:3】

------解决方案--------------------
探讨

C# code

string sss_1 = "20.32";
string sss_2 = "15.67";
double result = Convert.ToDouble(sss_1) + Convert.ToDouble(sss_2);
string sss_3 = result.ToSt……