c#Math.Round保留两位小数,结果能除尽,不保留小数点后的.00

qq_41132238 2018-06-26 03:26:59
Math.Round(((decimal)submintNum / releaseNum) * 100, 2, MidpointRounding.AwayFromZero)
我想求大神告诉我,我想要的结果是75.00% 可是结果是75%,为什么后面的小数不见了,但是如果除不尽的话后面的两位小数是在的
例如28.67%
...全文
1144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41132238 2018-06-26
  • 打赏
  • 举报
回复
好的,谢谢
  • 打赏
  • 举报
回复
那就是json将0去除了,无所谓的,毕竟json无法区别是float,double还是decimal,如果你那么在意后面的0,直接返回字符串就行了
qq_41132238 2018-06-26
  • 打赏
  • 举报
回复
我转的是json,并不是string
qq_41132238 2018-06-26
  • 打赏
  • 举报
回复
List<Task> list = TaskManager.SelectAsList(sqlStr.ToString());
List<MyTask> myTaskList = new List<MyTask>();
myTaskList = MyTaskManager.SelectFieldsAsList(string.Format("1=1"), "ObjectID,TaskID,IsSubmit,Score");

foreach (Task item in list)
{
item.ReviewedWork = myTaskList.Where(q => item.ObjectID == q.TaskID && q.IsSubmit && q.Score > 0)
.Select(q => q.ObjectID).Count();

item.WorkNum = myTaskList.Where(q => item.ObjectID == q.TaskID && q.IsSubmit).Select(q => q.ObjectID).Count();

item.WorkCompletedNum = myTaskList.Where(q => item.ObjectID == q.TaskID && q.IsSubmit).Select(q => q.ObjectID).Count();

item.WorkNotCompletedNum = myTaskList.Where(q => item.ObjectID == q.TaskID && !q.IsSubmit).Select(q => q.ObjectID).Count();

item.ScoreANum = myTaskList.Where(q => q.TaskID == item.ObjectID && q.IsSubmit && q.Score <= 100 && q.Score >= 85).Select(q => q.ObjectID).Count();

item.ScoreBNum = myTaskList.Where(q => q.TaskID == item.ObjectID && q.IsSubmit && q.Score < 85 && q.Score >= 70).Select(q => q.ObjectID).Count();

item.ScoreCNum = myTaskList.Where(q => q.TaskID == item.ObjectID && q.IsSubmit && q.Score < 70 && q.Score >= 60).Select(q => q.ObjectID).Count();

item.ScoreDNum = myTaskList.Where(q => q.TaskID == item.ObjectID && q.IsSubmit && q.Score < 60 && q.Score >= 40).Select(q => q.ObjectID).Count();
item.ScoreENum = myTaskList.Where(q => q.TaskID == item.ObjectID && q.IsSubmit && q.Score < 40 && q.Score > 0).Select(q => q.ObjectID).Count();
item.ScoreFNum = myTaskList.Where(q => q.TaskID == item.ObjectID && !q.IsSubmit && q.Score == 0).Select(q => q.ObjectID).Count();
item.TotalNum = myTaskList.Where(q => q.TaskID == item.ObjectID).Select(q => q.ObjectID).Count();
if (item.WorkCompletedNum != 0)
{
item.ScoreARatio = Math.Round(((double)item.ScoreANum / item.WorkCompletedNum) * 100, 2);
item.ScoreBRatio = Math.Round(((double)item.ScoreBNum / item.WorkCompletedNum) * 100, 2);
item.ScoreCRatio = Math.Round(((double)item.ScoreCNum / item.WorkCompletedNum) * 100, 2);
item.ScoreDRatio = Math.Round(((double)item.ScoreDNum / item.WorkCompletedNum) * 100, 2);
item.ScoreERatio = Math.Round(((double)item.ScoreENum / item.WorkCompletedNum) * 100, 2);

}
item.ScoreFRatio = -1;
if (item.TotalNum != 0)
{
item.ScoreFRatio = Math.Round(((double)item.ScoreFNum / item.TotalNum) * 100, 2);
}
}
result.aaData = list;
return JsonHelper.ToJson(result);
非我莫属One 2018-06-26
  • 打赏
  • 举报
回复
objcet.ToString("0.00#");
Hello World, 2018-06-26
  • 打赏
  • 举报
回复
显示时候格式化,比如:(0.75).ToString("P2");
Laplace_Primitives 2018-06-26
  • 打赏
  • 举报
回复
可能牵扯到一个数字的格式化输出问题
  • 打赏
  • 举报
回复
Console.WriteLine("{0}%",Math.Round(0.05m * 100, 2, MidpointRounding.AwayFromZero));
  • 打赏
  • 举报
回复
你转成string的代码在哪里,你round 2的话后面肯定会有2个0的

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧