我有问题,我还没找到解决方案,所以我请求你的帮助。 在我的数据库中,我有一些int,decimal和string需要以特定的长度和精度转换为数字,以包含在平面文件中。
例如:
integer 123 to numeric(8,0) ==> 00000123
decimal 123,123 to numeric(8,8) ==> 0000012312300000
String "22" to numeric(8,0) ==> 00000022
它不能放逗号或点。有一个简单的解决方案 我尝试了很多东西,但没有人会给我我的结果,除了做循环foreach归档在我的平面文件太脏了!
编辑:
平面文件根据起点和长度获取信息,因此我在文件中包含的每个数据都必须是一个长度。而对于我所拥有的数字
database Decimal Price = 123,456
File Numeric(8,6) Price = 00000123456000
我想知道如何根据N(,)解析任何十进制或整数数据
答案 0 :(得分:4)
试试这个:
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));
答案 1 :(得分:3)
结帐String.Format
: