示例 - > 4.11 我需要得到11这是十进制之后的值
我如何在C#中获得它?
答案 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