gpt4 book ai didi

C# 十进制到数字(?,?)

转载 作者:行者123 更新时间:2023-11-30 14:20:32 25 4
gpt4 key购买 nike

我有一个问题,我还没有找到解决方案,所以我请求你的帮助。在我的数据库中,我有一些整数、小数和字符串需要转换为具有特定长度和精度的数字以包含在平面文件中。

例如:

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

它不能放逗号或点。有没有简单的解决办法我尝试了很多东西,但没有一个能给我结果,除了循环 foreach Filed in my flat file too dirty!!

编辑:

平面文件根据起点和长度获取信息,因此我包含在文件中的每个数据都必须有一定的长度。例如,对于数字,我有

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

关于C# 十进制到数字(?,?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1221450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com