C # Dezimal zu Numeric (?,?)
Frage
Ich habe ein Problem, ich noch nicht die Lösung gefunden habe, so kann ich Ihre Hilfe bin zu fragen. In meiner Datenbank habe ich einige int, Dezimal und Zeichenfolge, die in numerischen mit bestimmten Länge und Präzision sein muss konvertieren in einer flachen Datei aufzunehmen.
ex:
integer 123 to numeric(8,0) ==> 00000123
decimal 123,123 to numeric(8,8) ==> 0000012312300000
String "22" to numeric(8,0) ==> 00000022
Es kann nicht Komma oder Punkt setzen. Gibt es eine einfache Lösung Ich versuche, eine Menge Dinge, aber keiner gibt mir mein Ergebnis außer Schleifen tun auch in meiner Wohnung Datei abgelegt foreach schmutzig !!
EDIT:
die flache Datei wird Informationen auf der Grundlage dort Punkt beginnen und die Länge, so dass jeder Daten i in der Datei includ hat eine cetain Länge sein. Und für die Numeric ich für exemple haben
database Decimal Price = 123,456
File Numeric(8,6) Price = 00000123456000
Ich wollte wissen, wie ich auf Basis von N Zahlen auf- oder Integer-Daten analysieren könnte ( )
Lösung
Versuchen Sie folgendes:
string ToNumericString(int value) {
return value.ToString("00000000");
}
string ToNumericString(decimal value) {
var value16 = Math.Truncate(value * 100000000);
return value16.ToString("0000000000000000");
}
string ToNumericString(string value) {
return ToNumericString(int.Parse(value, CultureInfo.InvariantCulture));
}
nennen:
MessageBox.Show(ToNumericString(123));
MessageBox.Show(ToNumericString(123.123M));
MessageBox.Show(ToNumericString("22"));
oder allgemeiner:
string ToNumericString(decimal value, int digitsBefore, int digitsAfter) {
var value16 = Math.Truncate(value * (decimal)Math.Pow(10,digitsAfter));
return value16.ToString(new String('0', digitsBefore + digitsAfter));
}
MessageBox.Show(ToNumericString(123.123M, 8, 3));
Andere Tipps
Überprüfen Sie heraus String.Format
: