如何获得小数后的值?

时间:2012-03-18 12:54:21

标签: c#

示例 - > 4.11 我需要得到11这是十进制之后的值

我如何在C#中获得它?

4 个答案:

答案 0 :(得分:0)

从值

的math.int中减去该值

答案 1 :(得分:0)

如果你的意思是得到小数点后的数字(如果存在)作为原始字符串,只需使用字符串操作:

double myNumber = 4.0001115;
string myString = myNumber.ToString();
string decimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
int index = myString.IndexOf(decimalSeparator);
string afterDecimal = (index >= 0 && !myString.EndsWith(decimalSeparator)) ? myString.Substring(index + decimalSeparator.Length) : "";

否则,如果您的意思是将其作为数字本身,则此处的其他答案是正确的。

答案 2 :(得分:0)

它已经过时但是为什么不把这个值放在一个int中,所以它会短路到没有小数的数字。

然后用这样的int数减去这个值 - >

double myValue = 4.11;
int myInteger = myValue // It's 4
double valueAfterDecimal = myValue - myInteger; // It's 4.11 - 4 = 0.11
int valueAsInt = Convert.ToInt16(valueAfterDecimal * 100) ;
// 0.11 *100 = 11.0 --> Convert to Int = 11

答案 3 :(得分:0)

使用这个确实保留尾数前导零的简单方法:

double number = -1234.056789;
string mantissa = string.Empty;
decimal fraction = (decimal)number % 1;
if (fraction != 0)
{
    mantissa = Math.Abs(fraction).ToString().Substring(2);
}
Console.WriteLine(mantissa);
Console.ReadKey();

Result: 056789