Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 11.02.2011, 16:00   #1
Sloth
Оператор ЭВМ
 
Регистрация: 28.11.2010
Сообщений: 32
Написано 0 полезных сообщений
(для 0 пользователей)
Помогите!

Помогите! Вот фрагмент кода
var S:real;
// Тут вычисления,  бла бла бла
i:=FormAddString('Кол-во нефти =' S); 
Как мне сделать, что бы выводилось не 13,1000 а просто 13,1 (с 1 знаком после запятой)
Сделайте пожалуйста на моем примере, спрашивал в других местах, но нормального ответа не получил, помогите!

PS. Про нефть просто так написал :D
(Offline)
 
Ответить с цитированием
Старый 11.02.2011, 16:18   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Помогите!

По видимому как то округлять надо число перед добавлением к строке.
__________________
(Offline)
 
Ответить с цитированием
Старый 11.02.2011, 16:19   #3
Sloth
Оператор ЭВМ
 
Регистрация: 28.11.2010
Сообщений: 32
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите!

это понятно, но КАК?
(Offline)
 
Ответить с цитированием
Старый 11.02.2011, 17:08   #4
m.ksy
AnyKey`щик
 
Регистрация: 08.02.2011
Сообщений: 4
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите!

S:=((S*10+0.5)-frac(S*10+0.5))/10
(Offline)
 
Ответить с цитированием
Старый 12.02.2011, 00:17   #5
Sloth
Оператор ЭВМ
 
Регистрация: 28.11.2010
Сообщений: 32
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите!

не работает
(Offline)
 
Ответить с цитированием
Старый 12.02.2011, 12:41   #6
VM
Оператор ЭВМ
 
Регистрация: 24.09.2007
Сообщений: 36
Написано 2 полезных сообщений
(для 3 пользователей)
Re: Помогите!

// Округление до одного знака после запятой
function round(x: real): real;
var
f: real; n: integer;

begin
x := x*10;
f := Frac(x); //дробная часть
if (f >= 0.5) then x := x - f + 1;
if (f < 0.5) then x := x - f;
x := x/10;
round := x;
end;

s := Round(s)

В настройках поставить floating-point
(Offline)
 
Ответить с цитированием
Старый 12.02.2011, 22:04   #7
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Ответ: Помогите!

а у меня вот такая странная хрень получилась. работает без Frac и floating-point ставить не надо. округляет по правилам, вроде.

function Round1(xreal): string;
begin
  Round1 
:= '' trunc(x) + ',' + (trunc(100) - (trunc(x) * 100) + 5div 10;
end
еще и запятую вместо точки поставить можно ..)
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:34.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com