我需要将十进制数字a转换为字符串b,如下所示:
> b必须是避风港’.’字符.例如:
> a = 12 – > b =“12.0”
> a = 1.2 – > b =“1.2”
> a = 1.234 – > b =“1.234”
我怎么能用1命令呢?
> b必须完全是10个字符.例如:
> a = 101 – > b =“101.000000”
> a = 1.234 – > b =“1.23400000”
> a = 1.234567891 – > b =“1.23456789”
(与1相同的问题)
解决方法
decimal a = 12; var b = a.ToString("N1"); // 12.0 a = 1.2m; b = a.ToString(); // 1.2 a = 101m; b = a.ToString("N10"); // 101.0000000000 a = 1.234m; b = a.ToString("N10"); // 1.2340000000
对于问题的第二部分 – 您希望总长度为10,那么:
decimal a = 1.234567891m; int numberOfDigits = ((int)a).ToString().Length; var b = a.ToString($"N{9 - numberOfDigits}"); //1.23456789 //Or before C# 6.0 var b = a.ToString("N" + (9 - numberOfDigits)); //1.23456789
基本上((int)数字).ToString().Length给出之前的数字位数. (转换为int将删除分数),然后从数字后面的位数减少. (小数点本身也是-1)