所以当我输入一些数字时,使用 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/