我正在尝试从浮点数中提取精确的小数部分。我尝试使用以下代码:
但输出结果是:
float f=254.73;
int integer = (int)f;
float fractional = f-integer;
printf ("The fractional part is: %f", fractional);
但输出结果是:
0.729996
。因此,当我进行以下操作时:float f=254.73;
int integer = (int)f;
float fractional = f-integer;
int fractional_part_in_integer = ((int)(f*100)%100);
printf ("The value is: %d", fractional_part_in_integer);
它输出了72
,但是我想从给定的数字254.73
中精确地提取73
。我已经知道在printf()
函数中使用%.2f
打印两位小数。但是在我的代码中,我现在不想打印这个数字。我希望把那个小数部分作为整数形式73
进行一些计算。
所以,我的问题是如何从254.73
中提取小数部分,以便我可以得到73
作为整数进行更多的计算?
f
的值,它可能只是接近你所想象的值(虽然我自己没有尝试过,所以不确定)。更新:我已经尝试过了:http://ideone.com/9fbeme - mah25473
之类的),并稍后除以100。 - mah