folgenden 2 Schritte
- Holen Sie sich die Zahlen nach dem Komma
n
- Multiplizieren von
10^n
Code:
double number = -26.3999745;
int n = BitConverter.GetBytes(decimal.GetBits((decimal)number)[3])[2];
long result = (long)(number * Math.Pow(10, n));
Wenn Sie Einzel Verantwortung gerne folgen (sollten), dann können Sie mit einem zweiten Ansatz gehen die auch nicht kulturspezifisch ist:
static int GetCountAfterDecimal(double number)
{
int count = 0;
string seperator = System.Globalization.CultureInfo.CurrentCulture
.NumberFormat.NumberDecimalSeparator;
string numberAsString = number.ToString();
int indexOfSeperator = numberAsString.IndexOf(seperator);
if (indexOfSeperator >= 0)
count = numberAsString.Length - indexOfSeperator - 1;
return count;
}
static long RemoveDecimalPoint(double number, int numbersCountAfterDecimal)
{
return (long)(number * Math.Pow(10, numbersCountAfterDecimal));
}
static void Main(string[] args)
{
double number = -26.3999745;
long result = RemoveDecimalPoint(number, GetCountAfterDecimal(number));
Console.WriteLine(result);
}
Es ist nicht die gleiche Nummer, Welche Kriterien haben Sie für diese Konvertierung? –
Multiplizieren Sie einfach mit 100000 zum Beispiel. Oder konvertiere so eine Zeichenkette und entferne das Dezimalzeichen. – HimBromBeere
Beispiel: 'long.Parse ((- 26.3999745) .ToString(). Replace (". "," "))' –