2014-11-06 137 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