如何在点之后取6个数字 - 但是没有数字?
例如:
102.123456789 => 102.123456
9.99887766 => 9.998877
在C#winforms中
提前预定
答案 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));