Странно ;)
4 отговора
261 прегледа
Странно ;)
Първо се извинявам за глупавия въпрос.. ;)
Значи имам една задача да се намери средно аритметично на кубовете на две числа... ето го сорса:
writeln('Vuvedete x: '); read(x);
writeln('Vuvedete y: '); read(y);
x := x * x * x;
y := y * y * y;
writeln('Sredno aritmetichno ot kubovete na x & y e: ', (y+x)/2);
Въпроса ми: примерно въвеждам x=2, y=3 - получения резултат е 1.7500000000E+01 - защо се получава така, а като дам да изкара 2 знака след дробната запетая (y+x)/2:4:2 изкарва верния резултат, то и предишния сигурно е верен, но ми е чудно защо се получава така...
п.с не се смейте много :)
Значи имам една задача да се намери средно аритметично на кубовете на две числа... ето го сорса:
writeln('Vuvedete x: '); read(x);
writeln('Vuvedete y: '); read(y);
x := x * x * x;
y := y * y * y;
writeln('Sredno aritmetichno ot kubovete na x & y e: ', (y+x)/2);
Въпроса ми: примерно въвеждам x=2, y=3 - получения резултат е 1.7500000000E+01 - защо се получава така, а като дам да изкара 2 знака след дробната запетая (y+x)/2:4:2 изкарва верния резултат, то и предишния сигурно е верен, но ми е чудно защо се получава така...
п.с не се смейте много :)
Не е странно
Ами Борланд са решили така да си направят компилатора - когато не е форматирано, числото с плаваща запетая се извежда нормализирано, с цяла едноцифрена част на мантисата.
Редактирано от NikB на
Re: Не е странно
a ako ne znaesh kakwo e mantisa priemi che
1.7500000000E+01 = 1.75 * 10^1 = 17.5
(s ^ oznachawam stepen)
1.7500000000E+01 = 1.75 * 10^1 = 17.5
(s ^ oznachawam stepen)