一、问题或解决方法应用场景。
最近写接口时,产品要求:列表数据显示时,当含小数时要保留两位小数,且小数部分都为0时,则只显示整数部分。 这个问题前后端都可以调整的,这里我给出前后端调整的方式。
二、直接粘贴代码获取图片
方法一:通用法 ------后端
此方法比较通用,适用性强。 删除参数类型可以为字符串,方便根据实际情况返回一些非分数信息的情况。
double score1 = 23.41; double score2 = 23.00; var str1= string.Format("{0:0.##}",score1 ); var str2= string.Format("{0:0.##}",score2 ); Console.WriteLine(str1);//输出23.41 Console.WriteLine(str2);//输出23
方法二:类型一致法------后端
此方法适用于数据类型与返回参数类型一致的情况。
//数据库里字段的类型 Score decimal(18, 2) //实体以及输出参数类型 /// <summary> /// 成绩 /// </summary> public decimal Score { get; set; } //部分伪代码--仅供参考 { //查询学生成绩 var stuScore = studentScore.Where(x => x.StudentId == m.StudentId).FirstOrDefault(); if (stuScore != null) { output.Score=stuScore.Score; } return output; }
用此方法,
数据库保存值为: 90.00, 88.50, 66.66
页面接口返回值: 90, 88.5, 66.66
方法三: parseFloat() 方法 ----前端
前端js的话, 还是推荐使用parseFloat() 方法
这里只给出针对标题问题的代码演示,具体方法的用法大家可以查看官方文档。
var num1 =99.99; var num2 =88.50; var num3 =77.00; var num4 =0.09; var num5 =0.60; console.log(parseFloat(num1)); // 99.99 console.log(parseFloat(num2)); // 88.5 console.log(parseFloat(num3)); // 77 console.log(parseFloat(num4)); // 0.09 console.log(parseFloat(num5)); // 0.6
前端这个方法验证,大家可以在控制台上粘贴代码试一下。
三、注意事项,着重注意点。
0.## 表示最多保留2位有效数字,但是不包括0
持续更新中、、、、、、本人代码新手,能力有限,如有不足之处,欢迎大家一起讨论交流。