我想只显示十进制的十分之一。
decimal d = 44.22m;
var s = d.ToString("");
如何使s == "22"
成立?
PS:我很清楚我可以做一些数学运算,但我想只使用Binding和StringFormat
答案 0 :(得分:0)
这不是最好的,但它有效:
decimal d = 44.22m;
string ds = d.ToString().Remove(0, (d.ToString().IndexOf(',') + 1));
答案 1 :(得分:0)
decimal d = 44.22m;
Regex regex = new Regex(@"\d*(?=m)");
Match match = regex.Match(d);
if (match.Success)
{
Console.WriteLine(match.Value);
}
答案 2 :(得分:0)
如果您需要大量操作,可以为此步骤设置功能!?我想使用String.Format
只会起作用。
int getDecimals (decimal d)
{
try
{
int s = Convert.ToInt32(string.Format("{0}", d.ToString().Split('.')[1]));
return s;
}
catch { //whatever u want// }
}
// ==> //
decimal d = 44.22m;
string s = getDecimals(d).ToString();
答案 3 :(得分:0)
这里有类似问题的答案。
https://stackoverflow.com/a/19374418/4101237
由用户发布 https://stackoverflow.com/users/2608383/karthik-krishna-baiju
原始邮政编码:
string outPut = "0";
if (MyValue.ToString().Split('.').Length == 2)
{
outPut = MyValue.ToString().Split('.')[1].Substring(0, MyValue.ToString().Split('.')[1].Length);
}
Console.WriteLine(outPut);
根据您的要求进行了修改:
decimal d = 44.22m;
string outPut = "0";
if (d.ToString().Split('.').Length == 2)
{
outPut = d.ToString().Split('.')[1].Substring(0, d.ToString().Split('.')[1].Length);
}
Console.WriteLine(outPut);
- 输入样本 -
1)46.0
2)46.01
3)46.000001
4)46.1 5)46.12
6)46.123
7)46.1234- outputs--
1)0
2)01
3)000001
4)1
5)12
6)123
7)1234