我想替换字符串中的逗号。C#用位置替换字符串
例如,数据是零件的货币值。
例如, 453,27这是我从SAP数据库中获得的值
我需要将逗号替换为一段时间以将值修复为正确的数量。有时候,它会成千上万。
例如, 2,356,34这个值需要是2,356.34
所以,我需要帮助操纵字符串来替换从最后2个字符的逗号。
感谢您的帮助
我想替换字符串中的逗号。C#用位置替换字符串
例如,数据是零件的货币值。
例如, 453,27这是我从SAP数据库中获得的值
我需要将逗号替换为一段时间以将值修复为正确的数量。有时候,它会成千上万。
例如, 2,356,34这个值需要是2,356.34
所以,我需要帮助操纵字符串来替换从最后2个字符的逗号。
感谢您的帮助
string x = "2,356,34";
if (x[x.Length - 3] == ',')
{
x = x.Remove(x.Length - 3, 1);
x = x.Insert(x.Length - 2, ".");
}
认识到,千位数也使用逗号的句点。使用您的代码将这两个问题更改为正确的格式。 – tluck234
@ tluck234 - 那会更有意义。您收到*欧洲*格式,正试图读取其值,但您的解析设置为*美国*文化。另一种解决方法是在您分析文件时将文化设置为欧洲*。 [我不知道确切的细节,但查找“文化”/“千分位数”/“小数点”]。 – ToolmakerSteve
快速谷歌搜索给了我这样的: ''
void replaceCharWithChar(ref string text, int index, char charToUse)
{
char[] tmpBuffer = text.ToCharArray();
buffer[index] = charToUse;
text = new string(tmpBuffer);
}
所以你的 “charToUse” 应该是。如果它始终是结束2个字符,你的指数应该是 text.length - 3
它应该是-3而不是-2。 :) – MAV
哎呀,同时在电话中说话:) –
使用此:
string str = "2,356,34";
string[] newStr = str.Split(',');
str = string.Empty;
for (int i = 0; i <= newStr.Length-1; i++)
{
if (i == newStr.Length-1)
{
str += "."+newStr[i].ToString();
}
else if (i == 0)
{
str += newStr[i].ToString();
}
else
{
str += "," + newStr[i].ToString();
}
}
string s = str;
如果我理解正确的话,你总是需要用句点替换最后的逗号。
public string FixSAPNumber(string number)
{
var str = new StringBuilder(number);
str[number.LastIndexOf(',')] = '.';
return str.ToString();
}
string item_to_replace = "234,45";
var item = decimal.Parse(item_to_replace);
var new_item = item/100;
//if you need new_item as string
//then new_item.ToString(Format)
为什么要像2,356,34一些存储在这种方式,如果一个逗号意味着要么是一个千个分隔符或小数点分隔符?这对我来说看起来很奇怪 –
另外,你应该真正向我们展示你已经尝试过的东西 –
这只是它从数据库传来的方式。数据库像这样保存它,并以某种方式理解它。这对我来说也没有意义。 – tluck234