将固定长度数转换为十进制.NET C#

Yur*_*les 1 .net c#

我有一个导入的txt文件,其格式为:

00000000003000
00000000009500
00000000003000
00000000002000
00000000000500-
00000000001500-
00000000003000-
00000000003000-
00000000009500-
Run Code Online (Sandbox Code Playgroud)

这是最后2个字符为小数的数字.(如果为负值则减号)例如:

00000000003000 = 30.00
00000000000500- = -5.00
Run Code Online (Sandbox Code Playgroud)

是否有一个函数将此字符串转换为十进制并节省我的时间写一个?

谢谢.

Dmi*_*nko 9

试试这个:

 String source = "00000000001500-";

 Decimal result = Decimal.Parse(source, 
   NumberStyles.Any, // NumberStyles.Any includes trailing signs
   CultureInfo.InvariantCulture) / 100.0M;
Run Code Online (Sandbox Code Playgroud)

如果你想(对某些字段,值)4位小数只是改变100.0M10000.0M这些字段:

 Decimal result4 = Decimal.Parse(source, 
   NumberStyles.Any, // NumberStyles.Any includes trailing signs
   CultureInfo.InvariantCulture) / 10000.0M;
Run Code Online (Sandbox Code Playgroud)

  • ...然后在想要4个小数位的字段上将`/ 100.0M`更改为`/ 10000.0M` (3认同)
  • 不知道那个 (2认同)
  • 在这种情况下(*四个*小数位)你必须决定何时应用*two*和*四个*数字架构.其中一个灵魂:`if(Math.Abs​​(result)> = 100)result\= 100M`; (2认同)