//内置函数的写法 //网上零售价和折扣价在计算结束需要进行进位,规则如下: //个位为1,2,3,4进位到5,例如计算后的价格为1201,则价格为1205; //个位为6,7,8,9进位到0,例如计算后的价格为1209.则价格为1210; public static string ChangePrice(double price) { int changed = 0; int m = (int)Math.Round(price); int n = (int)Math.Floor(price / 10); int d = m - n * 10; if (0 < d && d <= 4) { changed = n * 10 + 5; } else if (5 < d && d <= 9) { changed = n * 10 + 10; } else { changed = m; } return changed + ""; } //算法的写法 public static string ChangePrice(double price) { int changed = 0;//改变后的值 int m = 0;//四舍五入取整 int n = 0;//取整数 double temp = price; if (temp.ToString().IndexOf('.') > -1) { string strTemp = temp.ToString(); strTemp = strTemp.Substring(0, strTemp.IndexOf('.')); n = int.Parse(strTemp) / 10;//取整数 m = (int)Math.Round(temp);//四舍五入取整数 int d = m - n * 10; if (0 < d && d <= 4) { changed = n * 10 + 5; } else if (5 < d && d <= 9) { changed = n * 10 + 10; } else { changed = m; } } else { string TempAgain = (temp / 10).ToString(); if (TempAgain.IndexOf('.') > -1) { TempAgain = TempAgain.Substring(0, TempAgain.IndexOf('.')); n = int.Parse(TempAgain); m = int.Parse(temp.ToString()); int d = m - n * 10; if (0 < d && d <= 4) { changed = n * 10 + 5; } else if (5 < d && d <= 9) { changed = n * 10 + 10; } else { changed = m; } } else { n = int.Parse(TempAgain); m = int.Parse(temp.ToString()); int d = m - n * 10; if (0 < d && d <= 4) { changed = n * 10 + 5; } else if (5 < d && d <= 9) { changed = n * 10 + 10; } else { changed = m; } } } return changed + ""; }