主题:输出小数的问题!
lierenpascal
[专家分:0] 发布于 2007-10-27 12:51:00
两个数相除. 若两数为integer类型,则会导致类型错误.若是real类型.则结果较繁琐.
有没有办法让结果为小数形式.如:
5/2=2.5
我知道可以将其结果转换为string类型.然后利用数组.
有没有别的简单的方法?[em6][em6]
回复列表 (共6个回复)
沙发
xuanlyu1314 [专家分:60] 发布于 2007-10-27 14:22:00
5*1.0/2
板凳
Matodied [专家分:7560] 发布于 2007-10-27 17:00:00
楼上的,你的结果还不是那么繁琐?
其实用一般计算除法的方法就可以了。
程序:(循环小数保留前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 楼
angwuy [专家分:2280] 发布于 2007-10-27 17:50:00
程序最好换成小写的,大写看起来不太习惯。要记住,这是pascal语言,不是basic语言。
4 楼
abcwuhang [专家分:1840] 发布于 2007-10-27 19:47:00
program try;
var x:Extended;
a,b:longint;
begin
readln(a,b);
x:=a/b;
writeln(x:0:10);
end.
5 楼
cylr2014 [专家分:0] 发布于 2007-11-11 12:11:00
var
a,b:integer;
begin
readln(a,b);
writeln(a/b:0:10);
end.
6 楼
风之落叶 [专家分:40] 发布于 2007-11-11 12:49:00
要用高精度
加836197138,我发给你!
注明‘pascal问题’
我来回复