首页 新闻 赞助 找找看

数字格式化。请问下这个如何格式化。

0
[已解决问题] 解决于 2020-11-20 15:48

0.1200 格式化后0.12

5.6000格式化后5.6

3.0000格式化后3

0.0000格式化后0

总的来说就是去掉后多余的小数0

你猜丶的主页 你猜丶 | 初学一级 | 园豆:183
提问于:2020-07-10 16:57
< >
分享
最佳答案
0

ToString("#0.##")或者string.Format("{0:###.###}", 0.1200)

奖励园豆:5
暗※空 | 菜鸟二级 |园豆:209 | 2020-08-08 03:01
其他回答(9)
0

如果是数字格式的数据,正常情况下,你啥事都不做,就是你想要的效果。
只有你做了什么以后,才会出现其他效果。

爱编程的大叔 | 园豆:30839 (高人七级) | 2020-07-10 17:03

不系的呢,我是decimal类型,默认会有四个0的呢

支持(0) 反对(0) 你猜丶 | 园豆:183 (初学一级) | 2020-07-10 17:06
0

ToString()即可

RosonJ | 园豆:4910 (老鸟四级) | 2020-07-10 17:04

你这...我当然知道ToString(),我问的就是啥公式才能有这效果嘛

支持(0) 反对(0) 你猜丶 | 园豆:183 (初学一级) | 2020-07-10 17:06

@你猜丶:
要什麼公式??
不就這樣
https://dotnetfiddle.net/ChCuaq

支持(0) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2020-07-10 17:18
0

ToString("#.##") 试下这个呢

顾星河 | 园豆:7169 (大侠五级) | 2020-07-10 17:10
0

取最后一位判断是不是0就可以了啊

银龙科技 | 园豆:203 (菜鸟二级) | 2020-07-10 17:13
0

new BigDecimal("0.1200").stripTrailingZeros().toPlainString()

yytxdy | 园豆:1680 (小虾三级) | 2020-07-10 17:34
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);
}
我恰芙蓉王 | 园豆:190 (初学一级) | 2020-07-11 10:43
0

结果是什么类型?string类型就用tostring啊,你想有的是int有的是double???

李0539 | 园豆:442 (菜鸟二级) | 2020-07-11 13:46
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
0

转float就可以,自动去掉末尾0

F12-爱码士 | 园豆:254 (菜鸟二级) | 2020-09-09 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册