String num = "93456"
decimal decinum = Convert.ToDecimal(num);
var newnum = decinum.ToString();
我需要将字符串值转换为十进制值,然后再转换回字符串值
例如,将93456字符串格式转换为93.456十进制格式,然后再转换回93.456字符串格式。
我需要在字符串的两个拳头数字后放置一个小数。
答案 0 :(得分:2)
这是我的尝试:
String myString = "93456";
if (myString.Length > 2)
{
myString = myString.Insert(2, Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator);
}
var myDecimal = decimal.Parse(myString);
Console.WriteLine(myDecimal);
Console.WriteLine(myDecimal.ToString());
答案 1 :(得分:0)
decimal num = 93456;
StringBuilder sb = new StringBuilder(num.ToString());
if (sb.Length > 2)
sb.Insert(2, Thread.CurrentThread.CurrentCulture
.NumberFormat.CurrencyDecimalSeparator);
Console.WriteLine(sb);
num = decimal.Parse(sb.ToString());
Console.WriteLine(num);
更新 我们没有很多字符串操作,因此不需要使用StringBuilder。 还根据这个问题,我们应该使用NumberDecimalSeparator 而不是CurrencyDecimalSeparator
decimal num = 93456;
string str = num.ToString();
if (str .Length > 2)
str .Insert(2, Thread.CurrentThread.CurrentCulture
.NumberFormat.NumberDecimalSeparator);
Console.WriteLine(str);
num = decimal.Parse(str);
Console.WriteLine(num);
答案 2 :(得分:0)
您可以尝试
string num = TextBox1.Text; //"93456.12";
if (num.Length > 2)
{
decimal decNumber = Convert.ToDecimal(num.Substring(0, 2) + "." + num.Substring(2, num.Length - 2).Replace(".",""));
string strNumber = Convert.ToString(decNumber);
}
答案 3 :(得分:0)
这可以帮助您:
string num1 = "93456";
int value = Convert.ToInt32(num1);
int digits = (num1.Length - 2) > 0 ? (num1.Length - 2) : 0;
decimal number1 = value / Convert.ToDecimal(Math.Pow(10, digits));
string result = number1.ToString();
答案 4 :(得分:0)
string num = "9312";
string newNum = num.Length > 2 ? num.Insert(2, ".") : num + ".000";
decimal newDecimal;
if (Decimal.TryParse(newNum, out newDecimal))
Console.WriteLine(newDecimal);
else
Console.WriteLine("not a valid decimal '{0}'.", newDecimal);
答案 5 :(得分:0)
另一种方式:
string num = "93456";
decimal decinum = decimal.Parse(num);
string newnum = decinum.ToString("#,#", new NumberFormatInfo { NumberGroupSeparator = "." });