C:指定printf中浮点输出的可变小数点数?
我刚刚开始学习C语言。我正在尝试打印一个浮点数,我知道我可以如下所示C:指定printf中浮点输出的可变小数点数?,c,C,我刚刚开始学习C语言。我正在尝试打印一个浮点数,我知道我可以如下所示 printf("Rate: %f.\n",rate); 但我只想打印特定数量的小数点,由变量“decimalPoints”指定。通过读取字符串并使用sscanf将其转换为浮点来确定小数点的值。因此,它不限于特定的值,因此%.2f将不起作用。但是如果分点的值是2,有没有办法做到这一点 i、 e.以下格式的东西 int decimalPoints = 2; printf("Rate: %{decimalPoints}f.\n",
printf("Rate: %f.\n",rate);
但我只想打印特定数量的小数点,由变量“decimalPoints”指定。通过读取字符串并使用sscanf将其转换为浮点来确定小数点的值。因此,它不限于特定的值,因此%.2f将不起作用。但是如果分点的值是2,有没有办法做到这一点
i、 e.以下格式的东西
int decimalPoints = 2;
printf("Rate: %{decimalPoints}f.\n",rate);
无法指定要这样打印的浮点小数位数 而不是
printf("Rate: %{decimalPoints}f.\n",rate);
做
printf中使用的%.*f
将字符串后的第一个整数参数作为要使用浮点数打印的小数位数
一些测试:
#include <stdio.h>
int main(void) {
float rate = 1.223321f;
int decimalPoints;
for (decimalPoints = 0; decimalPoints < 6; decimalPoints++)
{
printf("Rate: %.*f \n", decimalPoints, rate);
}
}
#包括
内部主(空){
浮动率=1.223321f;
整数分点;
用于(小数点=0;小数点<6;小数点++)
{
printf(“速率:%.*f\n”,小数点,速率);
}
}
输出:
费率:1
比率:1.2
比率:1.22
比率:1.223
比率:1.2233
比率:1.22332
标题暗示您的程序在使用
sscanf
时崩溃,但帖子与崩溃无关,并询问了其他问题。一个好消息可能会派上用场。printf(“Rate:%{decimalPoints}f.\n”,Rate)
它将以{decimalPoints}f.的形式给出输出。
如果更多的程序员阅读文档,他们就不必猜测语法可能是什么对不起,伙计们,我不是有意要发布那个标题的,这是我在发布之前设法解决的一个问题的标题的开始。
#include <stdio.h>
int main(void) {
float rate = 1.223321f;
int decimalPoints;
for (decimalPoints = 0; decimalPoints < 6; decimalPoints++)
{
printf("Rate: %.*f \n", decimalPoints, rate);
}
}