2017-03-03 45 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%