我在我的计算器程序里面是这样做的。首先定义一个变量的,这个变量用来记录小数点是否被按下过。如果没有被按下过,就在字符串后面追加小数点,如果已经按下过了,就不再追加了,整个标志位在运算符按钮处理函数里面进行清零的或复位的。蚂陪这样就保闷渣蠢证你在按下运算符之后还可以继续添加小数点的。。
两种表示方式:
1、定点表示:必须有小数点。
例如:0.123, .123, 123.0。余姿
2、指数表示:e或E之前必须有数字,指数必须为整数。
例如:12.3e3 ,123E2, 1.23e4。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,在末尾斗毁亩添加小写的f或者大写的F,表示此常量为单精度浮点常量。
定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:
一般说来,如果最末位xn= 1,前面各位都为0,则数的绝对值最小,即|x|min= 2^(-n)。如果各位均为1,则数的绝对值最大,即|x|max=1-2^(-n)。所以定点小数的表示范围是:2^(-n)≤|x|≤1 -2^(-n)。
扩展资料
由于“编码总位数为8”的限制,真值-128无法用原码、反码来表示,似乎不能用上述规则来求解补码,但实际上是可行的——只要不管它的最高位即可, *** 作办法如下:
将128化为二进制为:1 0000000,最高位为1,可以只对舍去最高位后剩余的7位进行处理即可,首先取反得:1111111,加1得:1 0000000,最高位有进位需丢弃,即得:0000000,加上符号位就得补码:1 0000000。
又如,当编码总位数为4时,真值X=+0.101的原码、反码、补码均为:0 101。
真值X=-0.101的原码、反码、补码依次为:1 101、1 010、1 011。
同理,特例,-1的补码为:1 000。
在定点小数中,小数点隐含在第一位编码和第二位编码之间
定点小数,是指小数点准确固定在数据某个位置上的小数,从实用角度看,都把小数点固定在最高数据位的左边,小数点前边再设一位符号位。按此规则,任何一个小数都可以被写成空森 :N = NS . N-1 N-2 … N-M。
参考资料来源:百度百科-定点小数的表示方法
1.首先你定义的speed是无符号字符型在执行speed=1.1*ncounter
后speed的值也是整迅乎数,小数后面的数会被省略,你需要将speed定义为小数型:float
speed;
2.你的ncounter是多大的数?是否比speed最大范围值大,如果大可能数据就乱了!
dian=speed*10,dian这个数也要同上考虑猛桐
3.小数点的数可以考虑使用:
dian=(speed%1)*10;//取出小枝昌坦数点后一位的数乘以10,变成整数显示,你要显示成小数显示程序里前面加个点的符号隔开就行了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)