将字符串转换为十进制转换为C#中的字符串

时间:2018-10-29 03:22:33

标签: c#

String num = "93456"

decimal decinum = Convert.ToDecimal(num);
var newnum = decinum.ToString();

我需要将字符串值转换为十进制值,然后再转换回字符串值

例如,将93456字符串格式转换为93.456十进制格式,然后再转换回93.456字符串格式。

我需要在字符串的两个拳头数字后放置一个小数。

6 个答案:

答案 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 = "." });