如何在点后取6个数字 - 但没有数字?

时间:2010-08-12 12:16:28

标签: c# winforms

如何在点之后取6个数字 - 但是没有数字?

例如:

102.123456789 => 102.123456

9.99887766 => 9.998877

在C#winforms中

提前预定

6 个答案:

答案 0 :(得分:10)

您可以使用Math.Truncate方法和10 ^ 6乘数:

decimal x = 102.12345689m;
decimal m = 1000000m;
decimal y = Math.Truncate(m * x) / m;
Console.WriteLine(y); // Prints 102.123456

答案 1 :(得分:5)

System.Math.Truncate (102.123456789 * factor) / factor; 

在你的情况下因子是10 ^ 6; read more

答案 2 :(得分:2)

  public decimal TruncateDecimal(decimal decimalToTruncate, uint numberOfDecimalPlacse)
  {
     decimal multiplication_factor = (decimal)Math.Pow(10.0, numberOfDecimalPlacse);
     decimal truncated_value = (long)(multiplication_factor * decimalToTruncate);
     return (truncated_value / multiplication_factor);
  }

答案 3 :(得分:0)

我知道使用字符串很难看,但我想我还是把它放了:

double x = 9.9887766;
string[] xs = x.ToString().Split('.');
double result = double.Parse(xs[0] + "." + xs[1].Substring(0, Math.Min(xs[1].Length, 6)));

答案 4 :(得分:0)

可能是一个冗长的方式,但如何将其变成一个字符串,找到小数点,然后抓住字符串减去小数点后6位的任何东西。然后你可以把它变成小数。

答案 5 :(得分:0)

这很粗但是怎么样:

decimal Number = 102.123456789;
string TruncateTarget = Number.ToString();
decimal FinalValue = Decimal.Parse(TruncateTarget.Substring(0, TruncateTarget.IndexOf('.') +6));