回 帖 发 新 帖 刷新版面

主题:输出小数的问题!

两个数相除. 若两数为integer类型,则会导致类型错误.若是real类型.则结果较繁琐.
有没有办法让结果为小数形式.如:
 5/2=2.5
我知道可以将其结果转换为string类型.然后利用数组.
有没有别的简单的方法?[em6][em6]

回复列表 (共6个回复)

沙发

5*1.0/2

板凳

楼上的,你的结果还不是那么繁琐?
其实用一般计算除法的方法就可以了。
程序:(循环小数保留前40位)
VAR
   a, b, i, t, r: INTEGER;
BEGIN
    READLN(a, b); WRITE(a DIV b);
    IF (a MOD b = 0) THEN HALT;
    WRITE('.'); r := a MOD b;
    FOR i:=1 TO 40 DO BEGIN
        r := r * 10; t := r DIV b; WRITE(t);
        r := r MOD b; IF r = 0 THEN BREAK;
    END;
END.

3 楼

程序最好换成小写的,大写看起来不太习惯。要记住,这是pascal语言,不是basic语言。

4 楼

program try;
var x:Extended;
    a,b:longint;
begin
  readln(a,b);
  x:=a/b;
  writeln(x:0:10);
end.

5 楼


var
 a,b:integer;
begin
 readln(a,b);
 writeln(a/b:0:10);
end.

6 楼

要用高精度
加836197138,我发给你!
注明‘pascal问题’

我来回复

您尚未登录,请登录后再回复。点此登录或注册