大佬教程收集整理的这篇文章主要介绍了c – 划分和浮点,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
long double x1,x2; x1= 0.087912088; // Note: 360/4095 = 0.087912088 x2 = 360/4095; printf("%Lf,%Lf \n",x1,x2);
结果:
x1 =0.087912 x2= 0.000000
在您的情况下,如果您将其更改为:
x2 = 360 / 4095.0; /* one of the operands Now has a @R_801_6221@l point */
你会得到
0.087912,0.087912
作为输出.
即,只要除法运算符的一个或两个操作数都是浮点数/双精度数,结果也是如此(即,它将被“提升”为浮点数/双精度数).@R_912_9447@将x2更改为
x2 = 360.0 / 4095.0;
要么
x2 = 360.0 / 4095;
并且会得到与上面相同的结果.
正如@chris刚刚提到的那样.也足够了.
关于精度,请回答上面的问题:
你已经在使用长双打..我不认为你在内部可以改变任何东西,除非你使用一些特殊的库,但你当然可以显示更多的数字.例如.,
printf("%Lf,%.20Lf \n",x2);
会屈服
0.087912,0.08791208791208791895
最后,正如@ edA-qa mort-ora-y提醒我们的那样,你也可以将值转换为某些类型,但是当你这样做时它很重要.一个简单的例子(请注意,在任何情况下,值在赋值后最终都为float,因为v是一个float):
float v = 0; /* values shown are BEFORE assignment */ v = (5 / 2); /* value is 2 due to Integer truncation before assignment */ v = (float) (5 / 2); /* 2.0 as Integer division occurs 1st,then cast to float */ v = (float) 5 / 2; /* 2.5 since 5 becomes 5.0 through casTing first. */
以上是大佬教程为你收集整理的c – 划分和浮点全部内容,希望文章能够帮你解决c – 划分和浮点所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。