C语言乘法计算溢出long a,b,c;c=a*b/100;a*b是超过4294967295的,但是a*b/100是绝对不超过4294967295.我前面的程序对a、b有限制有没什么方法计算能不溢出呢?(如果先对a、b先除100,这样的话,精度有影响.a是

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 18:42:34
C语言乘法计算溢出long a,b,c;c=a*b/100;a*b是超过4294967295的,但是a*b/100是绝对不超过4294967295.我前面的程序对a、b有限制有没什么方法计算能不溢出呢?(如果先对a、b先除100,这样的话,精度有影响.a是
xRJA~.U5B'FTul#3$Z5Pwea3;G &s}1eOF_e=WцE$A=^ooZ0ɦi/lnՙ@V}Yh:6RLnq̺?CF-q,]σ2ĀZdZїةs}Ph8{Bo!|@`h;(A`:!5x`sKP<߯ϫ<맖_jNb>(AO%lz}$Kub{9GIGs 2鷈UtLLc:⠢'gj;Zҩ| U*WAEa\rIB;

C语言乘法计算溢出long a,b,c;c=a*b/100;a*b是超过4294967295的,但是a*b/100是绝对不超过4294967295.我前面的程序对a、b有限制有没什么方法计算能不溢出呢?(如果先对a、b先除100,这样的话,精度有影响.a是
C语言乘法计算溢出
long a,b,c;
c=a*b/100;
a*b是超过4294967295的,但是a*b/100是绝对不超过4294967295.我前面的程序对a、b有限制
有没什么方法计算能不溢出呢?
(如果先对a、b先除100,这样的话,精度有影响.a是变量,如果先除100的话,当a小于100时就出错了)
如果先转化为float计算的话,float精度只有7位,也不够.所以郁闷

C语言乘法计算溢出long a,b,c;c=a*b/100;a*b是超过4294967295的,但是a*b/100是绝对不超过4294967295.我前面的程序对a、b有限制有没什么方法计算能不溢出呢?(如果先对a、b先除100,这样的话,精度有影响.a是
把c=a*b/100;改成c=a/100*b;或c=a*(b/100);试试.