数据库面试题里面有个题 某种型号的手机原价为2000元,连续两次降价后,现售价为1280元,如果每次都降价率相同,求这个百分率,请列出详细计算步骤。 怎么做?

0
已邀请:
0

gangzimo 2016-08-11 回答

2000*(1 - x)^2 = 1280
           (1 - x)^2 = 0.64
              (1 - x) = 0.8
                     x = 20%
1

蓝心 2016-08-16 回答

不知道你这个题目是直接数学题呢,还是用存储过程或函数写呢?
1. 如果是解数学题, 2000 * (1-x) * (1-x) =1280 ,解出来,结果是0.2,也就是20%  。
2. 如果是用存储过程或函数写呢.  不知道有没有什么具体要求,写了一个,看一下能不能用.
create or replace procedure p_phone
is
  x  number(5,2):= 0.01;   --每次降价率
  x_char varchar2(20);   --每次降价转换成字符串
  x_max number(5,2);   --最大降价
begin
   x_max := (2000 -1280)/2000;   --最大降价
   while x<=x_max loop
     if 2000 *(1-x)*(1-x)=1280 then
       x_char := x *100 || '%';
       dbms_output.put_line('每次降价'||x_char);
       return;
     end if;
     x := x+0.01;
   end loop;
end;

 
0

vipchg - 少一事不如多一事 2016-10-18 回答

select   1- sqrt(1280/2000)  from dual

要回复问题请先登录注册