我有一个问题,我也没有找到尚未解决,所以我要求你的帮助。 在我的数据库我有需要在具有特定长度和精度的数字转换在平面文件包括一些整型,十进制和字符串。

例如:

integer 123 to numeric(8,0) ==> 00000123
decimal 123,123 to numeric(8,8) ==> 0000012312300000
String "22" to numeric(8,0) ==> 00000022

它不能把逗号或点。有一个简单的解决方案 我尝试了很多东西,但没有人会叫我的结果,除了做循环在我的平面文件的foreach提起过脏!

编辑:

平面文件被基于信息上那里开始点和lenght所以每数据i中的文件中includ必须是一个某类lenght。和用于数字我有为例

   database Decimal Price = 123,456
   File     Numeric(8,6) Price = 00000123456000

我想知道我怎么能解析基于N(

的任何小数或整数数据
有帮助吗?

解决方案

尝试这种情况:

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));
}

要叫它:

    MessageBox.Show(ToNumericString(123));
    MessageBox.Show(ToNumericString(123.123M));
    MessageBox.Show(ToNumericString("22"));

或更一般的:

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));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top