【发布时间】:2020-06-02 21:33:20
【问题描述】:
在 C# 中,我可以执行以下操作:
Console.Write("{0}, ", string.Format("{0:0.00###########}", someFloatValue));
为某个任意浮点值获取至少 2 位小数,直到某些可选的小数位数,在本例中为 13。
我想知道 C 语言中的 printf 是否也可以这样做?
【问题讨论】:
-
这能回答你的问题吗 -> stackoverflow.com/a/35121056/1737811 ?
-
@mutantkeyboard 问题不在于指定变量的精度。
-
“可选小数位”是什么意思?这是否意味着它将打印 2-13 位小数,但省略尾随零?
-
如果这就是你的意思,没有内置的东西可以做到这一点。有关解决方法,请参阅 stackoverflow.com/questions/277772/…。
-
for(char *end = buf + sprintf(buf, "%.*f", prec, val) - 1; end > buf && *end == '0'; --end) *end = '\0';将打印val到buf与prec小数,然后丢弃尾随的 0。 C 中没有内置的浮点格式可以(可靠地)做到这一点。