Неявные преобразования в выражениях
Добавлено: 21.02.2014 15:54:02
Прошу разъяснить пару вещей.
Допустим у нас есть код
Как я понял, выражение a/b преобразуется в Extended, а потом ещё раз в Single для s. Правильно ли я понял?
И например
Правильно ли я понимаю, что a * 0.1 преобразуется в Extended?
Если всё так, то можно ли как нить уменьшить точность таких вычислений? Ведь, например, для Single нам вовсе не требуется считать Extended'ом.
Допустим у нас есть код
- Код: Выделить всё
var
a, b :integer;
s :single;
begin
a := 10;
b := 3;
s := a/b;
end.
Как я понял, выражение a/b преобразуется в Extended, а потом ещё раз в Single для s. Правильно ли я понял?
И например
- Код: Выделить всё
var
a, b :integer;
begin
a := 10;
b := round(a * 0.1);
end.
Правильно ли я понимаю, что a * 0.1 преобразуется в Extended?
Если всё так, то можно ли как нить уменьшить точность таких вычислений? Ведь, например, для Single нам вовсе не требуется считать Extended'ом.