浮动百分比四舍五入

时间:2017-03-03 19:53:17

标签: c#

我想输出一个表示百分比的浮点数,如下所示:

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

现在使用:

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

如何防止舍入?

2 个答案:

答案 0 :(得分: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%

答案 1 :(得分:0)

您可以执行类似

的操作

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

这会产生"000099.5%"

不确定是否需要丢弃5

您乘以100因为您将要提供百分比,但您有比率