2014-11-06 197 views
0

无论数值是什么(我有一个需要适合的文档),我正在尝试将浮点数打印到一定长度。我正在使用PowerShell,但我还没有发现任何有用的东西。使用PowerShell格式化浮点数到一定长度

如果包含小数点,则最多可以有6位数字。

这是我正在寻找下面。

17.12356 => 17.1236

189.12345 => 189.123

12345 => 12345.0

122909808 => 122909(我有没有虽然是正确的方式来展现这种情况下,建议将是有帮助)

+0

我尝试使用[数学] ::方法,也使用{0:N0}和其他数字格式工具。在这一点上,我只是想打印出6位数字(如果存在的话就是小数)。我将真实值输出给json,因此保持舍入不是非常重要。 – 2014-11-06 22:40:51

回答

0

G格式说明符会将您的号码截断为指定的有效数字位数,但不会有任何小数字的前向零填充。下面的代码给出了你可能得到的各种类型的数字和5位有效数字(允许小数点的6个字符)的例子。请注意,对于非常大或小的数字,您会得到'科学'符号,这显然会比6个字符宽。对于这些情况,您需要找到大数字并将“E”移动到左侧至少4个空格处,但这样会丢失很多细节。直到你想要牺牲什么,真的。

PS > @(12345.678,123.45678,12345678,12345,123.4, 0.0) |%{"{0:G6}" -f $_} | %{if ($_.Leng 
th -le7) {$_} else {$_.Substring(0,7)} } 
12345.7 
123.457 
1.23457 
12345 
123.4 
0.0
+0

真棒谢谢多数民众赞成在我正在寻找。 – 2014-11-06 23:09:03