因此,当我输入一些数字时,使用 float ,它会以6位十进制数字打印。我知道我可以用“%。2f ”(当时数字只有两个)来调整位数。但我的问题是;是否有任何命令可以打印输入的确切位数。
我输入数字 2.5
的示例仅使用printf(“%f”,数字);它将打印 2.500000
或者使用printf(“%。2f”,数字);它将打印 2.50
那么有没有什么方法可以打印 2.5 (带一个小数点),同时如果我输入 2.51 这样的数字,它会打印出这个数字2个小数点( 2.51 )
答案 0 :(得分:1)
是。为此,您必须编写一些代码来确定需要打印小数点后的位数。
我会将以下伪代码转换为实际代码给您:
value = 2.51
places = 1
while(testDigitsAfterDecimal(value, places) { places ++ }
sprintf(format_string, "%%.%df", places)
printf(format_string, value)
总之,如果您编写代码以数学方式测试小数点后面的位置并记录您需要的位数,则可以在sprintf
中使用该数字来创建指定所需位置的格式字符串地方数量。完成后,您可以将该字符串传递给printf
作为打印号码的格式。