2017-02-16 21 views

回答

0

使用.10f.nf精度,以获得所需的精度。这里是n =精度数。 感谢@StoryTeller

void main() 
{  
double a=123.46566662; 
double frac=a-(long)a; 
printf("%.10f",frac); 
} 

//output :.4656666200 
0

的 “精确精准” 的想法是什么得到你。小数部分(通常)不能用有限的二进制数表示。就像2/3的“精确”小数分数一样。

您可以期望的最好的方法是根据您的数据类型以更高的精度获得“足够接近”的小数部分(请考虑floatdouble)。

如果确实必须得到得到“精确的精确度”,我推荐你实现你自己的“精确”算术,其中你用十进制表示存储十进制数。无论是字符串,BCD还是一组数字。