如何在字符串中四舍五入到小数点后两位

本文关键字:两位 小数点 字符串 四舍五入 | 更新日期: 2023-09-27 18:05:48

可能重复:
c#-如何将十进制值四舍五入到小数点后2位(用于页面输出(

string strTemp = "0.51667308807373";

通过小数点后两位的四舍五入转换为十进制。

如何在字符串中四舍五入到小数点后两位

Math.Round(Convert.ToDecimal(strTemp), 2);

首先将字符串转换为十进制(使用decimal.Parse或decimal.TryParse(。

decimal d = Decimal.Parse("123.45678");

然后使用round(d,m(对十进制值进行四舍五入,其中d是您的数字,m是小数,请参阅http://msdn.microsoft.com/en-us/library/6be1edhb.aspx

decimal rounded = Decimal.Round(d, 2); 

如果你只想四舍五入表示,你可以跳过四舍五舍五入到小数,而只是简单地四舍五进输出中的值:

string.Format("{0:0.00}", 123.45678m);  

将值转换为浮点数,然后四舍五入:

double temp = Double.Parse(strTemp, CultureInfo.InvariantCulture);
temp = Math.Round(temp, 2);

或者,如果您想要将结果作为字符串,只需解析它并将其格式化为小数点后两位:

double temp = Double.Parse(strTemp, CultureInfo.InvariantCulture);
string result = temp.ToString("N2", CultureInfo.InvariantCulture);

注意:CultureInfo对象使方法始终使用句点作为小数分隔符,而不管本地区域性设置如何。

var roundedTemp = Math.Round(decimal.Parse(strTemp), 2);

您可能想检查以确保字符串始终是十进制的第一位,但认为这是它的本质。

您可以使用此链接中的信息http://www.csharp-examples.net/string-format-double/对于double值,请使用double.parse api

您可以使用数字格式的信息。类似

NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;

double myInt = 0.51667308807373;
// Displays the same value with four decimal digits.
nfi.NumberDecimalDigits = 2;
Console.WriteLine(myInt.ToString("N", nfi));
Console.ReadKey();