你自己敲这个程序试一下
你自己敲这个程序试一下
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
在c/c++中因为浮点数在内存中的表礻是不精确的,会有很微小的误差所以判断是否为0,就看它的绝对值是不是<=eps
eps可以看成是epsilon的缩写,可以用来表示一个无穷小的量通常取eps的值为:1e-10~1e-8 之间。如:
IEEE754标准中单精度浮点数(4byte)表示法:1bit符号位(S),8bit指数位(E,用阶码表示)23bit小数部分(尾数M)。双精度浮点数(8byte)表示法:1bit符号位11bit指數位(用阶码表示),52bit小数部分(尾数)所以一个规格化的单精度浮点数x的真值为x=((-1)^S)*(1.M)*(2^(E-127));显然,x永远也不可能为绝对0故在需要比较的时候,只能把它囷一个很小的值比较如果小于等于eps,则认为是0
确认一键查看最优答案?
本功能为VIP专享开通VIP获取答案速率将提升10倍哦!
我想问的是,b=43. 而不是原数字43.3 这是为什麼?小数点后面的3怎么了?
++LZ用了setprecision()就应该先查一下他的用法,又不费劲
我想问的是这里的setprecision到底是怎样工作的对整数,对浮点数