10的减法是把大数记心里还是小数的加减法记心里?

凑十法减法怎么分是分大数还是小数比如16—9_百度知道查看: 6746|回复: 13
【求助!!】为什么都是整数的加减法求和,小数点后第11位会出现数字的呢?哪位大大帮
阅读权限10
在线时间 小时
奇怪呀奇怪,而且已经不是第一次碰到这样的问题了,是不是excel的设置有问题呀?我用的是excel 2007 英文版的。。。
明明只有两位小数的加减法,却在小数点后出现数字。。有谁碰到过这样问题呀,困扰我很久了,烦呀烦
(6.56 KB, 下载次数: 29)
21:10 上传
点击文件名下载附件
excel的文件
阅读权限20
在线时间 小时
查看微软技术文档& &&&KB78113
阅读权限70
在线时间 小时
没有遇到过这样的问题,似乎改为常规便可
阅读权限95
在线时间 小时
& & & & & & & &
你求和对象当中有小数呀!所以就会产生浮点运算造成的误差,一般来说,这点误差并不影响大家的实际工作,所以不设置那么多位小数根本就感觉不到
只有用match或rank、countif进行对等识别时才会出问题,不过也不要紧,把原始数据用round加工一番就可避免了!
阅读权限10
在线时间 小时
设置单元格数值格式为小数点2位数
阅读权限10
在线时间 小时
newEHUser 发表于
查看微软技术文档& &&&KB78113
那有没有解决办法呀?因为这个是这么简单的2位小数的计算,没有牵涉到无限循环小数的问题呀,而且我用的是2007了的,看了你说的技术文档,是说2003有这个问题的,不过真心高手哦,随便一个问题,竟然技术文档的号码都能知道…才知道世界有多大,哎哎,感叹一下~
阅读权限10
在线时间 小时
hhjjpp 发表于
你求和对象当中有小数呀!所以就会产生浮点运算造成的误差,一般来说,这点误差并不影响大家的实际工作,所 ...
问题是我是做审计的,然后出报表的时候都是使用accounting的,不是用general,然后accounting就会有个问题,0的话会自动用“-”来表示,不然有些出现0,有限出现“-”报表会很难看,然后又不可能手工改成非数字的“-”,纠结呀,有没有解决办法呀?
阅读权限10
在线时间 小时
清风幽闲 发表于
没有遇到过这样的问题,似乎改为常规便可
问题是我是做审计的,然后出报表的时候都是使用accounting的,不是用general,然后accounting就会有个问题,0的话会自动用“-”来表示,不然有些出现0,有限出现“-”报表会很难看,然后又不可能手工改成非数字的“-”,纠结呀,有没有解决办法呀?
阅读权限70
在线时间 小时
kraik 发表于
问题是我是做审计的,然后出报表的时候都是使用accounting的,不是用general,然后accounting就会有个问题 ...
用text函数进行修正呢
阅读权限95
在线时间 小时
本帖最后由 hhjjpp 于
22:18 编辑
kraik 发表于
问题是我是做审计的,然后出报表的时候都是使用accounting的,不是用general,然后accounting就会有个问题 ...
放弃会计格式,改成自定义格式:
前两个分号前输入想要的格式代码
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师大整数算法[07] 绝对值减法 - starrybird - 博客园
& & & &&★ 引子&
&&&&&&& 最近两个星期一直在折腾,主机从 Windows 换到了 Linux,工作环境从实体机转移到虚拟机中。当然目的只有一个,那就是充分发挥 Linux 和虚拟机的优势来提高自己的工作效率。俗话说得好:磨刀不误砍柴工,花费一些时间来折腾升级还是有必要的,有空的话可以聊聊相关经验,如果你想急于知道的话,推荐(博客在墙外,请自行搜索梯子)。
&&&&&&& ★ 计算原理
&&&&&&&& 好了,废话不多说。讲了绝对值加法的实现,这次来讲讲绝对值减法该如何做。绝对值减法的做法仍然是笔算算法,从低位开始减,不够的向高位借位,直到所有的数位都处理完毕。为了方便日后的有符号数加减的实现,这里规定,算法计算 z = x - y,并且 x 的绝对值大于或等于 y,否则算法返回负数错误。
&&&&&&&& ★ 实现
&&&&&&&&& 因为原理比较简单,所以我就先把代码贴出来,然后在介绍他的工作方式。
int bn_sub_abs(bignum *z, const bignum *x, const bignum *y)
bn_digit *px, *py, *
size_t i, min, max, olduse, t1, t2,
if(bn_cmp_abs(x, y) & 0)
return BN_NEGATIVE_VALUE_ERROR;
olduse = z-&
BN_CHECK(bn_grow(z, z-&used));
for(i = 0; i & i++)
t1 = *px++;
t2 = *py++;
*pz++ = t1 - t2 -
if(t1 != t2) c = (t1 & t2);
for(; i & i++)
t1 = *px++;
*pz++ = t1 -
if(c != 0 && t1 != 0) c = 0;
for(i = i & i++)
*pz++ = 0;
z-&sign = 1;
bn_clamp(z);
&&&&&&&&&& 绝对值减法中,对输入进行排序并不重要,因为前面已经规定 |x| &= |y|,所以直接把 x-&used 给 max, y-&used 给 min;t1 和 t2 是临时变量,c 是借位。
&&&&&&&&&& 在进行计算之前,先检查 x 和 y 的绝对值大小,如果不满足上面约定的条件,返回负数错误。
&&&&&&&&&& 如果 x 和 y 的绝对值大小检查没问题,那么计算就可以正常进行,首先把借位的值设为 0,然后设定指针别名来提高内存访问效率。
&&&&&&&&&& 第一个循环:对位相减。分别把 x 和 y 的每一个数位赋值给临时变量 t1 和 t2,计算 t1 - t2 - c 的值,然后存放到 z 的对应数位当中,如果 c = 0,表示低位没有向高位借位。相减完毕后,判断本次相减是否需要向高位借位,如果原来 x 中的某一数位的值小于 y 中对应数位的值,则比较的结果为 1,c = 1。注意所有的计算都是 mod 2^n。
&&&&&&&&&& 第二个循环:退位和赋值。如果 max & min,表明 x 的数位要比 y 多,所以还需进行退位计算。如果 c = 0,则不会有退位了,直接把 x 的剩余数位赋值给 z 的对应数位即可。如果 c = 1,则还有来自低位的借位,在完成一次退位计算后,判断下一位是否需要退位,由于 c 的值只可能是 0 或 1,如果本次退位计算前,该数位的值大于 0,则以后的数位都不需要进行退位,故将 c 的值置为 0,否则保持退位值 1。完成退位计算后,将 x 剩余的数位给 z ,完成减法计算。
&&&&&&&&&& 第三个循环:高位清零。如果减法计算完毕后,高位还有不为 0 的数位,必须清空,否则结果会出错。
&&&&&&&&&& 所有循环结束后,把符号为设为 1,因为绝对值减法的最终结果仍然是个非负整数;最后压缩多余位完成计算。
&&&&&&&& ★ 总结
&&&&&&& & && 减法操作相对于加法来讲要简单些,主要是不需要考虑单双精度的问题,只要你知道笔算算法以及理解计算机下二进制的补码运算,就不难实现。将根据前面建立的比较算法,绝对值加减算法构造有符号数的加减计算算法。
版权声明原创博文,转载必须包含本声明,保持本文完整,并以超链接形式注明作者和本文原始地址:
阅读(...) 评论()10以内加减法练习题比大小_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
<span class="g-ico g-ico-star g-ico-star-on" style="width:%">
<span class="g-ico g-ico-star g-ico-star-on" style="width:%">
<span class="g-ico g-ico-star g-ico-star-on" style="width:%">
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。
10以内加减法练习题比大小
||暂无简介
总评分3.8|
浏览量9816761
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢算法与数据结构(28)
//注:来自网上一篇word文档《清华内部acm小组预定函数》
在sub函数中,存在22 - 2 = 0的情况,
将 if(len1&0)更正为
if (len1&-1 || en1==-1 && t[0]&'0'&) &
if (len1==-1 && t[0]&='0') &&
#include &stdio.h&
#include &string.h&
void mult(char c[],char t[],int m)
//t[]=c[]*m
int i,l,k,flag,add=0;
char s[100];
l=strlen(c);
for (i=0;i&l;i++)
s[l-i-1]=c[i]-&#39;0&#39;;
for (i=0;i&l;i++)
if (k&=10)
s[i]=k%10;
for (i=0;i&l;i++)
t[l-1-i]=s[i]+&#39;0&#39;;
t[l]=&#39;\0&#39;;
void main()
char c[100];
char t[100];
scanf(&%s&,c);
scanf(&%d&,&m);
mult(c,t,m);
printf(&%s\n&,t);
语法:mult(char c[],char t[],int
被乘数,用字符串表示,位数不限
结果,用字符串表示
乘数,限定10以内
返回&#20540;:
二,void mult(char a[],char b[],char s[])
int i,j,k=0,alen,blen,sum=0,res[65][65]={0},flag=0;
char result[65];
alen=strlen(a);blen=strlen(b);
for (i=0;i&i++)
for (j=0;j&j++)
res[i][j]=(a[i]-&#39;0&#39;)*(b[j]-&#39;0&#39;);
for (i=alen-1;i&=0;i--)
for (j=blen-1;j&=0;j--) sum=sum+res[i+blen-j-1][j];
result[k]=sum%10;
sum=sum/10;
for (i=blen-2;i&=0;i--)
for (j=0;j&=i;j++) sum=sum+res[i-j][j];
result[k]=sum%10;
sum=sum/10;
if (sum!=0) {result[k]=k=k+1;}
for (i=0;i&k;i++) result[i]+=&#39;0&#39;;
for (i=k-1;i&=0;i--)
s[i]=result[k-1-i];
s[k]=&#39;\0&#39;;
if (strlen(s)!=strlen(a)&&s[0]==&#39;0&#39;)
strcpy(s,s+1);
语法:mult(char&a[],char&b[],char&s[]);
被乘数,用字符串表示,位数不限
乘数,用字符串表示,位数不限
结果,用字符串表示
三,void add(char a[],char b[],char back[])
int i,j,k,up,x,y,z,l;
if (strlen(a)&strlen(b))
l=strlen(a)+2; else l=strlen(b)+2;
c=(char *)malloc(l*sizeof(char));
i=strlen(a)-1;
j=strlen(b)-1;
while(i&=0||j&=0)
if(i&0) x=&#39;0&#39;;
else x=a[i];
if(j&0) y=&#39;0&#39;;
else y=b[j];
z=x-&#39;0&#39;+y-&#39;0&#39;;
if(up) z+=1;
if(z&9) {up=1;z%=10;} else up=0;
c[k++]=z+&#39;0&#39;;
c[k++]=&#39;1&#39;;
c[k]=&#39;\0&#39;;
for(k-=1;k&=0;k--)
back[i++]=c[k];
back[i]=&#39;\0&#39;;
语法:add(char&a[],char&b[],char&s[]);
被乘数,用字符串表示,位数不限
乘数,用字符串表示,位数不限
结果,用字符串表示
返回&#20540;:
四,void sub(char s1[],char s2[],char t[])
int i,len2,len1,k;
len2=strlen(s2);
len1=strlen(s1);
t[len1]=&#39;\0&#39;;len1--;
for (i=len2-1;i&=0;i--,len1--)
if (s1[len1]-s2[i]&=0)
t[len1]=s1[len1]-s2[i]+&#39;0&#39;;
t[len1]=10+s1[len1]-s2[i]+&#39;0&#39;;
s1[len1-1]=s1[len1-1]-1;
if (len1&0)
while(s1[k]&0)
s1[k]+=10;
s1[k-1]-=1;
while(len1&=0)
t[len1]=s1[len1];
if (t[0]==&#39;0&#39;)
len1=strlen(s1);
for (i=0;i&len1-1;i++) t[i]=t[i+1];
t[len1-1]=&#39;\0&#39;;
if (strlen(t)==0)
t[0]=&#39;0&#39;;
t[1]=&#39;\0&#39;;
语法:sub(char&s1[],char&s2[],char&t[]);
被减数,用字符串表示,位数不限
减数,用字符串表示,位数不限
结果,用字符串表示
返回&#20540;:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:38829次
排名:千里之外
原创:35篇
转载:27篇
(1)(1)(8)(14)(2)(11)(10)(7)(6)(3)}

我要回帖

更多关于 小数加减法竖式计算题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信