c - 设置小数点后的数字

标签 c

所以当我输入一些数字时,使用 float 它会打印 6 位十进制数字。我知道我可以用“%.2f”之类的东西调整位数(然后数字只有两个)。但我的问题是;是否有任何命令可以打印输入的确切位数。

例如,如果我输入数字 2.5

只有 printf ("%f", number);它将打印2.500000

或者用printf("%.2f", number);它将打印2.50

那么有什么方法可以打印 2.5(带一位小数),同时如果我输入像 2.51 这样的数字,它会打印那个数字2 位小数 (2.51)

最佳答案

是的。为此,您必须编写一些代码来确定需要打印小数点后的多少位。

我将把下面的伪代码转换为实际代码留给你:

 value = 2.51
 places = 1
 while(testDigitsAfterDecimal(value, places) { places ++ }
 sprintf(format_string, "%%.%df", places)
 printf(format_string, value)

总而言之,如果您编写代码来对小数点后的位置进行数学测试并计算您需要多少位,那么您可以在 sprintf 中使用该数字来创建格式字符串指定所需的位置数。完成后,您可以将该字符串作为打印号码的格式传递给 printf

关于c - 设置小数点后的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635480/

相关文章:

c - 为什么 strcpy 在数组大小不可变时工作,C

c - 使用 const int 的动态数组

C 列表类程序

c - 在 C 中对文件中的数字进行排序

c - 为什么两个整数相除得不到 float ?

c - 普通 C 中的静态变量和外部

c - ACM 10038 Jolly 套头衫

c - 如何释放树的所有节点?

c - Malloc 结构的大空间并像 c 中的数组一样访问它

c - 从代表不同值的不同文件访问 C 中的相同宏