2017-03-03 78 views
0

我要輸出所佔的百分比的浮動如下:持股量百分比四捨五入

float fPct = 0.995f; // I want 000099% as output. 

現在用途:

string str = fPct.ToString("000000%"); // But this gives me 000100%. 

我怎樣才能防止四捨五入?

+0

是否有你使用'float'而不是'double'或'decimal'的原因? – crashmstr

+0

不需要全精度。 – Ron

回答

0

你可以做這樣的事情

(0.995f * 100).ToString().PadLeft(8, '0') + "%"

這將產生"000099.5%"

不知道你需要放棄5,雖然。

您可以通過100乘,因爲你即將呈現%的,但你有一個

1

您可以使用Math.Truncate擺脫小數部分的,但你必須做轉換爲百分比自己:

float fPct = 0.995f; 
string str = Math.Truncate(fPct * 100).ToString("000000") + "%"; // 000099% 
// or 
string str = $"{Math.Truncate(fPct * 100):000000}%"; // 000099% 

請注意,這將有同樣的效果簡單地轉換爲int

float fPct = 0.995f; 
string str = $"{(int)(fPct * 100):000000}%"; // 000099%