数字格式化。请问下这个如何格式化。
时间: 2020-07-10来源:博客园
前景提要
数字格式化。请问下这个如何格式化。
0 [待解决问题] 0.1200 格式化后0.12
5.6000格式化后5.6
3.0000格式化后3
0.0000格式化后0
总的来说就是去掉后多余的小数0 C# 数字格式化 你猜丶 | 菜鸟二级 | 园豆: 254
提问于:2020-07-10 16:57 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(9) 0 如果是数字格式的数据,正常情况下,你啥事都不做,就是你想要的效果。
只有你做了什么以后,才会出现其他效果。 爱编程的大叔 | 园豆:30664 (高人七级) | 2020-07-10 17:03 不系的呢,我是decimal类型,默认会有四个0的呢 支持( 0 ) 反对( 0 ) 你猜丶 | 园豆:254 (菜鸟二级) | 2020-07-10 17:06 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 ToString()即可 RosonJ | 园豆:3645 (老鸟四级) | 2020-07-10 17:04 你这...我当然知道ToString(),我问的就是啥公式才能有这效果嘛 支持( 0 ) 反对( 0 ) 你猜丶 | 园豆:254 (菜鸟二级) | 2020-07-10 17:06 @你猜丶:
要什麼公式??
不就這樣
https://dotnetfiddle.net/ChCuaq 支持( 0 ) 反对( 0 ) RosonJ | 园豆:3645 (老鸟四级) | 2020-07-10 17:18 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 ToString("#.##") 试下这个呢 默卿 | 园豆:4551 (老鸟四级) | 2020-07-10 17:10 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 取最后一位判断是不是0就可以了啊 银龙科技 | 园豆:183 (初学一级) | 2020-07-10 17:13 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 new BigDecimal("0.1200").stripTrailingZeros().toPlainString() yytxdy | 园豆:1093 (小虾三级) | 2020-07-10 17:34 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 正好项目里也有这个需求 写了个方法
public static String suffixNotZero(String value) {
if (StringUtils.isBlank(value)) {
return "";
}
//按照小数点拆分
String[] split = value.split("\.");
if(split.length != 2){
return value;
}
char[] chars = split[1].toCharArray();
int count = 0;
//循环小数点后字符串
for (int i = chars.length- 1; i >= 0; i--) {
if (chars[i] == '0') {
count++;
} else {
break;
}
} if(count != 0){ String substring = split[1].substring(0, split[1].length() - count); return substring.length() != 0 ? split[0] + "." + substring : split[0]; } return count == 0 ? value : value.substring(0, value.length() - count); } 我恰芙蓉王 | 园豆:288 (菜鸟二级) | 2020-07-11 10:43 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 结果是什么类型?string类型就用tostring啊,你想有的是int有的是double??? 多安分 | 园豆:387 (菜鸟二级) | 2020-07-11 13:46 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 楼主可以试一下这个方法,先获取小数点后的位数,然后再根据位数处理格式化的格式,再使用ToString格式化就好啦,望采纳哦
public static decimal FormatDecimal(decimal d)
{
string aa = d.ToString();
int len = aa.Length - aa.IndexOf(".") - 1; string dig = "#0."; int i = 0; do { dig += "#"; i++; } while (i <= len); return Convert.ToDecimal(d.ToString(dig)); } Script丶 | 园豆:170 (初学一级) | 2020-07-17 18:04 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 ToString("#0.##")或者string.Format("{0:###.###}", 0.1200) 暗※空 | 园豆:204 (菜鸟二级) | 2020-08-08 03:01 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行