双字符串转换(工程格式)

本文关键字:格式 程格式 字符串 转换 | 更新日期: 2023-09-27 18:27:57

我正在寻找一种使用非常特定的字符串格式的方法:

 -2.71405E-03  0.00000E+00 -2.71405E-03 -2.71405E-03  0.00000E+00 -2.71405E-03
 -2.71405E-03 -2.71405E-03 -2.71405E-03 -2.71405E-03 -2.71405E-03 -2.71405E-03
 -2.71405E-03 -2.71405E-03 -2.71405E-03 -5.42809E-03 -2.71405E-03 -2.71405E-03

它是UFF58文件中使用的格式。这种格式是用FORTRAN格式字符串E13.5来描述的,它意味着13个字符(与C/C++等语言不同,它也是上界),5个十进制数字。我有这个代码:

double d = -2.71405E-03;
d.ToString( "E5" ).Dump();

在LINQPad中,这会给出输出:-2.71405E-003

我找不到NumberFormatInfo类的任何属性,它可以限制指数的大小(使用的字符数)。知道如何通过更改格式字符串或NumberFormatInfo来解决它吗?

双字符串转换(工程格式)

如果你需要它在小数点后有5位数字,你可以这样做:

double d = -2.71405E-03;
d.ToString("0.00000E+00");

试试这个:

string MyString = d.ToString("0.#####E-00");