Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
округление числа в математических функциях
DoXeRДата: Воскресенье, 08 Мая 2011, 04:53 | Сообщение # 1
Любопытный
Группа: Проверенные
Сообщений: 53
Репутация: 0
Награды: 0
Статус: Offline
Прочел тут статью
http://mmbuilder.ru/publ/lessons/scripts/2/3-1-0-20
вопрос такой
можно ли:
Code

y=x1 + x2
y$=CHAR(y)
LoadText("Результат","y$")

в "результат" выводить округленное число ?
(чтобы всё, что будет идти после точки, отбрасывалось
пробовал добавлять

round=INT(y)+(y-INT(y)>0.5)
но не округляет ((

Сообщение отредактировал DoXeR - Воскресенье, 08 Мая 2011, 04:59
 
YURIYДата: Воскресенье, 08 Мая 2011, 12:17 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (DoXeR)
пробовал добавлять

Очень интересно, куда и как добавляете эту строку. Ибо она правильно делает своё дело.

Code
x1=0.2
x2=0.6
y=x1 + x2
y=INT(y)+(y-INT(y)>0.5)
y$=CHAR(y)
LoadText("Результат","y$")



Вечная память Андрею Сергееву!
 
Alex3AДата: Понедельник, 09 Мая 2011, 01:38 | Сообщение # 3
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
DoXeR,
Quote (DoXeR)
чтобы всё, что будет идти после точки, отбрасывалось
пробовал добавлять

Code
y=x1 + x2
y=INT(y)
y$=CHAR(y)
LoadText("Результат","y$")

функция INT берет только целую часть числа 3.2 и 3.9 дадут 3, то есть все что после точки отбрасывается, как ты и хотел.

Добавлено (09 Май 2011, 01:38)
---------------------------------------------
Взять челую часть и округлить это совсем разные вещи.

 
DoXeRДата: Четверг, 12 Мая 2011, 19:53 | Сообщение # 4
Любопытный
Группа: Проверенные
Сообщений: 53
Репутация: 0
Награды: 0
Статус: Offline
Спасибо ребят, получилось:))
из секунд в дни перевожу..
Только склонение дни / дней , косяк))
 
toizyДата: Четверг, 12 Мая 2011, 20:16 | Сообщение # 5
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
И в чём косяк?

Жизнь оказалась не такой уж и забавной, как поначалу...
 
mishemДата: Четверг, 12 Мая 2011, 20:19 | Сообщение # 6
Ветеран форума
Группа: Проверенные
Сообщений: 552
Репутация: 85
Награды: 12
Статус: Offline
Quote (toizy)
И в чём косяк?

Догадайся. :D
Похоже лишнее условие писать не хочется для склонения. 1 секунд, вместо 1 секунда. И т.д. :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь

 
toizyДата: Четверг, 12 Мая 2011, 23:58 | Сообщение # 7
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Quote (mishem)
1 секунд

Ну а что, грузынский русификацыя выйдет вполне ничего :)


Жизнь оказалась не такой уж и забавной, как поначалу...
 
DoXeRДата: Пятница, 13 Мая 2011, 01:19 | Сообщение # 8
Любопытный
Группа: Проверенные
Сообщений: 53
Репутация: 0
Награды: 0
Статус: Offline
Quote (mishem)
Догадайся. :D
Похоже лишнее условие писать не хочется для склонения. 1 секунд, вместо 1 секунда. И т.д. :)

ну да, верно, 1 день / 5 дней :D

только не то чтобы не хочется, скорее "не умеется")) с элементарным программированием вообще не дружу, долго вникаю, вот и пытаюсь освоить redface

 
mishemДата: Пятница, 13 Мая 2011, 01:45 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 552
Репутация: 85
Награды: 12
Статус: Offline
DoXeR,
Нужно создать условие при каких цифрах какое слово будет отображаться. У нас есть день, дня, дней. Прикинуть когда какое слово должно быть, подобрать логическое решение, и фсе. :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь

 
DEMBELДата: Пятница, 13 Мая 2011, 02:27 | Сообщение # 10
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
я уже занимался подобным условием )
х - число, у - текст
...
Если (х = 1 или х = 21 или х=31) тогда у = день
Иначе у = дней
Если (х = 2 или х = 3 или х = 4 или х = 22 или х = 23 или х =24) тогда у = дня
...
...
тупо но работает

Добавлено (13 Май 2011, 02:27)
---------------------------------------------

Code
If (x=1|x=2|x=31) Then
y$='день'
Else
y$='дней'
End
If (x=2|x=3|x=4|x=22|x=23|x=24) Then
y$='дня'
End




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
mishemДата: Пятница, 13 Мая 2011, 02:29 | Сообщение # 11
Ветеран форума
Группа: Проверенные
Сообщений: 552
Репутация: 85
Награды: 12
Статус: Offline
Quote (DEMBEL)
тупо но работает

Принцип правильный. :)
А если больше 31? Тоже перечислять? Например осталось до нового года. :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь

 
DEMBELДата: Пятница, 13 Мая 2011, 10:12 | Сообщение # 12
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
нет, можно брать последнюю цифру числа, если она 2,3,4 то... я делал в пределах месяца поэтому проще просто перечислить нужное



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
  • Страница 1 из 1
  • 1
Поиск: