C# 如何获取小数点后的值?
示例->4.11 我需要得到11,它是小数点后的值C# 如何获取小数点后的值?,c#,C#,示例->4.11 我需要得到11,它是小数点后的值 如何在C#中获得该值?从值的math.int中减去值如果您的意思是将小数点后的数字(如果存在)作为原始字符串,只需使用字符串操作: double myNumber = 4.0001115; string myString = myNumber.ToString(); string decimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
如何在C#中获得该值?从值的math.int中减去值如果您的意思是将小数点后的数字(如果存在)作为原始字符串,只需使用字符串操作:
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) : "";
否则,如果你的意思是通过它自己的权利得到它作为数字,这里的其他答案是正确的。它是旧的,但是为什么不把它的值放在一个int中,这样它就短到一个没有小数的数字 然后用整数减去这个值,就像这样-->
使用这个简单的方法来保留尾数的前导零:
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
输入的数据类型是什么?一般规则是什么?例如,如果输入是4.011,会怎样?为什么要这样?如果理解了需求,可能会有更好的方法。这对我不起作用,因为我的文章是
,
和myNumber。ToString()
将是40001115
@Tim good point,编辑我的文章以支持不同的格式。:)但是结果应该是11。我没有注意到。但是你可以简单地取0.11*100,然后把它写在一个int值中,以去掉小数点后的所有其他值。是的,但是你忽略了一个微妙的细节,结果应该是11,而不是0.11。
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