COMPUTER_LZY

要输就输给追求,要嫁就嫁给幸福

导航

double转换为科学计数法

public class ScienceCount
    {
        public static string KXJSF(double num)
        {
            double bef = System.Math.Abs(num);
            int aft = 0;
            while (bef >= 10 || (bef < 1 && bef != 0))
            {
                if (bef >= 10)
                {
                    bef = bef / 10;
                    aft++;
                }
                else
                {
                    bef = bef * 10;
                    aft--;
                }
            }
            return string.Concat(num >= 0 ? "" : "-", ReturnBef(bef), "E", ReturnAft(aft));
        }
        /// <summary>
        
/// 有效数字的处理
        
/// </summary>
        
/// <param name="bef">有效数字</param>
        
/// <returns>三位有效数字,不足则补零</returns>
        public static string ReturnBef(double bef)
        {
            if (bef.ToString() != null)
            {
                char[] arr = bef.ToString().ToCharArray();
                switch (arr.Length)
                {
                    case 1:
                    case 2return string.Concat(arr[0], ".""00"); break;
                    case 3return string.Concat(arr[0] + "." + arr[2] + "0"); break;
                    defaultreturn string.Concat(arr[0] + "." + arr[2] + arr[3]); break;
                }
            }
            else
                return "000";
        }
        /// <summary>
        
/// 幂的处理
        
/// </summary>
        
/// <param name="aft">幂数</param>
        
/// <returns>三位幂数部分,不足则补零</returns>
        public static string ReturnAft(int aft)
        {
            if (aft.ToString() != null)
            {
                string end;
                char[] arr = System.Math.Abs(aft).ToString().ToCharArray();
                switch (arr.Length)
                {
                    case 1: end = "0" + arr[0]; break;
                    case 2: end =  arr[0].ToString() + arr[1]; break;
                    default: end = System.Math.Abs(aft).ToString(); break;
                }
                return string.Concat(aft >= 0 ? "+" : "-", end);
            }
            else
                return "+00";
        }
    }

posted on 2011-10-18 14:57  CANYOUNG  阅读(3401)  评论(0编辑  收藏  举报