Float数字到字符串的宽度和精度格式

时间:2014-11-15 01:42:43

标签: c width precision mask

我需要执行看似简单的操作,但我似乎无法使其工作。 我需要做的是将一个浮点数格式化为一个具有十进制宽度的精确三位数和两位精度的数字。

320.1 -> 320.10
320 -> 320.00
32.1 -> 032.10

我试过像

这样的东西
sprintf(cbuffer, "%03.2f", (float)32);

但它不起作用。我在Windows 8.1上使用visual studio 2010,项目必须在Windows平台上运行(我不知道它是否与基于unix的系统不同) 另外,有没有更简单的方法使它在c ++中工作?

1 个答案:

答案 0 :(得分:1)

此案例的正确掩码为%06.2。这样

printf("%06.2f", (float)32); //correction pointed out by @lurker

将打印

032.00