C#-更改小数的数量
我有一个字符串如下所示:C#-更改小数的数量,c#,string,decimal,trim,C#,String,Decimal,Trim,我有一个字符串如下所示: TEXT MORETEXT 227.905 174.994 180 1111 TEXT MORETEXT 227.90 174.99 180 1111 TEXT MORETEXT 227.90 174.99 180 1111 TEXT MORETEXT 227.90 174.99 180 1111 我很好奇如何将小数点改为只有两位 因此,我希望它不是上面的字符串,而是: TEXT MORETEXT 227.90 174.
TEXT MORETEXT 227.905 174.994 180 1111
TEXT MORETEXT 227.90 174.99 180 1111
TEXT MORETEXT 227.90 174.99 180 1111
TEXT MORETEXT 227.90 174.99 180 1111
我很好奇如何将小数点改为只有两位
因此,我希望它不是上面的字符串,而是:
TEXT MORETEXT 227.90 174.99 180 1111 #rounding down
或
有人知道如何抓取这个字符串并将值更改为十进制,然后将十进制值向下修剪吗
编辑: 因此,如果我有一个如下的文件:(注意:该文件有多行) 我想让它进入一个
RichTextBox
,如下所示:
TEXT MORETEXT 227.905 174.994 180 1111
TEXT MORETEXT 227.90 174.99 180 1111
TEXT MORETEXT 227.90 174.99 180 1111
TEXT MORETEXT 227.90 174.99 180 1111
我怎么能这么做
EDIT2: 在将RTB上传到
列表框之前,我试图减少RTB中每一行的十进制值。然而,我正在挣扎…
您可以使用:
string[] piecesStringArray = myLine.Split('\t'); //Assuming those are tabs
double d1 = Convert.ToDouble(piecesStringArray[2];
double d2 = Convert.ToDouble(piecesStringArray[3];
double round1 = Math.Round(d1, 2);
double round2 = Math.Round(d2, 2);
//Now recreate your string
string[] myLines = entireFileText.Split(Environment.NewLine);
for(string myLine in myLines)
{
//Previous code
}
当然,您应该添加错误检查等。如果要反对传统的舍入,请查看Math.Floor()和Math.Ceil()。你需要将数字按十的幂进行缩放,才能使它正常工作
要获取myLine,您可以使用:
string[] piecesStringArray = myLine.Split('\t'); //Assuming those are tabs
double d1 = Convert.ToDouble(piecesStringArray[2];
double d2 = Convert.ToDouble(piecesStringArray[3];
double round1 = Math.Round(d1, 2);
double round2 = Math.Round(d2, 2);
//Now recreate your string
string[] myLines = entireFileText.Split(Environment.NewLine);
for(string myLine in myLines)
{
//Previous code
}
您可以使用:
string[] piecesStringArray = myLine.Split('\t'); //Assuming those are tabs
double d1 = Convert.ToDouble(piecesStringArray[2];
double d2 = Convert.ToDouble(piecesStringArray[3];
double round1 = Math.Round(d1, 2);
double round2 = Math.Round(d2, 2);
//Now recreate your string
string[] myLines = entireFileText.Split(Environment.NewLine);
for(string myLine in myLines)
{
//Previous code
}
当然,您应该添加错误检查等。如果要反对传统的舍入,请查看Math.Floor()和Math.Ceil()。你需要将数字按十的幂进行缩放,才能使它正常工作
要获取myLine,您可以使用:
string[] piecesStringArray = myLine.Split('\t'); //Assuming those are tabs
double d1 = Convert.ToDouble(piecesStringArray[2];
double d2 = Convert.ToDouble(piecesStringArray[3];
double round1 = Math.Round(d1, 2);
double round2 = Math.Round(d2, 2);
//Now recreate your string
string[] myLines = entireFileText.Split(Environment.NewLine);
for(string myLine in myLines)
{
//Previous code
}
您需要遵循以下步骤:
从字符串中提取数字后,可以使用Math类的方法对数字进行四舍五入。您可以编写自己的版本。您需要遵循以下步骤:
从字符串中提取数字后,可以使用Math类的方法对数字进行四舍五入。您可以编写自己的版本。将字符串作为一行读取,然后使用字符串对象的拆分方法,然后使用字符串对象的拆分方法,然后使用字符串对象的拆分方法,然后使用备注操作:您可以在数学中添加额外的参数。舍入指定要使用的小数位数忘记提及,谢谢。请随意编辑我的答案,使它better@Colithium:我已更新了多行文件的问题/
RichTextBox
。。。代码中会有什么变化?我添加了如何分割行。我假设您了解StringBuilder,您将使用它来重建分配给rtb的字符串。@colithium:实际上我对StringBuilder不太熟悉。。呵呵。我将在上面发布我的代码,其中包含我尝试执行的操作和失败的操作。。POSTEDNote to OP:您可以在数学中添加额外的参数。舍入指定要使用的小数位数忘记提及,谢谢。请随意编辑我的答案,使它better@Colithium:我已更新了多行文件的问题/RichTextBox
。。。代码中会有什么变化?我添加了如何分割行。我假设您了解StringBuilder,您将使用它来重建分配给rtb的字符串。@colithium:实际上我对StringBuilder不太熟悉。。呵呵。我将在上面发布我的代码,其中包含我尝试执行的操作和失败的操作。。POSTED@Peter:如果我有多行,我如何使用正则表达式来实现这一点?您可以添加RegexOptions.Singleline
选项。一点优化:将“[0-9]+([0-9]+)?”更改为“\d+。\d{3}\d*”,因为您只需要处理至少有3位小数的数字。@Petar:这似乎工作不正常。它给了我相同的值,但没有这样做,所以只有2个小数。@theNoobGuy:不确定你在做什么,但上面的代码可以工作-只是运行它。结果是:“TEXT-MORETEXT 227.91 174.99 180 1111\n TEXT-MORETEXT 227.91 174.99 180 1111”@Peter:如果我有多行,我怎么能使用Regex来做这件事呢?你可以添加RegexOptions.Singleline
选项。稍微优化一下:将“[0-9]+([0-9]+)?”改为“\d+。\d{3}\d*”因为您只需要处理至少有3位小数的数字。@Petar:这似乎不能正常工作。它给了我相同的值,但没有这样做,所以只有2个小数。@theNoobGuy:不确定你在做什么,但上面的代码可以工作-只是运行它。结果是:“TEXT MORETEXT 227.91 174.99 180 1111\n TEXT MORETEXT 227.91 174.99 180 1111”