Yoko

All sides of Injection
It is currently 2025-11-10 14:55:49

All times are UTC+02:00




Post new topic  Reply to topic  [ 15 posts ] 
Author Message
PostPosted: 2006-04-12 14:41:51 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Подскажите как округлить и отбросить челую часть числа...


Top
   
 Post subject:
PostPosted: 2006-04-12 14:54:19 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.


Top
   
 Post subject:
PostPosted: 2006-04-12 15:03:16 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Sanch wrote:
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.

uo.print(str(7/2)) ; проверь


Top
   
 Post subject:
PostPosted: 2006-04-12 15:05:05 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Sanch wrote:
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.


Мля, я спрашиваю как это сделать в инжекте. Почти во всех языках программирования есть всроенная функция округления. НАсчет натуральных чисел я тоже ничего не знаю, если это так то всё намного проще.
Кароч, пиши по делу, а то ты ведь всего 2 недели скрипты пишешь и уже типо бог чтоль?
ЗЫ: Тем более я не алгоритм округления спрашивал, а то как это в инжекте сделать(командой). Просто надоело в формулировке вопроса каждый раз добавлять "...в инжекте"


Top
   
 Post subject:
PostPosted: 2006-04-12 15:08:41 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Destruction wrote:
Sanch wrote:
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.

uo.print(str(7/2)) ; проверь


Проверил: БУДЕТ 3.5

Так что ,Sanch, сначала сам проверь, потом говори!


Top
   
 Post subject:
PostPosted: 2006-04-12 15:09:44 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Так как округлить то? Или нету такой команды? :)


Top
   
 Post subject:
PostPosted: 2006-04-12 15:33:52 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Quote:
пиши по делу, а то ты ведь всего 2 недели скрипты пишешь и уже типо бог чтоль

Нет, мне просто был непонятен твой вопрос.


Top
   
 Post subject:
PostPosted: 2006-04-12 16:10:08 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Делать было нечего и я выяснил, что:
1)Инжект хранит 6 знаков после запятой... (в окресности нуля(т.е. не в експоненциальной форме) (не знаю как по умному сказать :( )
2)Выяснил как ему сунуть число в експоненциальной форме: 1.234567890e+123
3)Максимальное число которое инжект понимает это 1.7976931348623159078e+308 (тоесть 2 в 1024 степени не считая цифр дальше 19 разряда {я так понимяю что тут дело в том что 0.1 нельзя записать в виде числа с плавающей запятой} [хотя для некоторых чисел он цифры после 14 разряда не воспринимает]) :)
4)Выяснил наиболее близкое число к нулю: 0.1e-5
5)Минимальное число: -1.7976931348623159078e+308


Top
   
 Post subject:
PostPosted: 2006-04-12 16:25:17 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Der wrote:
Sanch wrote:
Почти во всех языках программирования есть всроенная функция округления.


Автор скриптового модуля в доке пишет: "Язычок". Не "язык программирования", а язычок. И в этом "язычке" есть только:

Code:
Константы:

TRUE
FALSE
PI

Библиотечные функции:

SIN
COS
STRLEN  - длина строки
LEN - длина строки
STR(число, кол-во знаков после запятой) - число в строку
STR(число) - число в строку
VAL - строку в число
INT(число) - == floor()
IsString(аргумент)   - TRUE, если аргумент - строка
IsNumber(аргумент)   - TRUE, если аргумент - число
   - ^^ полезны, например для определени типа переменной FatalError
IsArray
IsClass

StrToMoney(строка)   - возвр. число, соотв. строке денег
MoneyToStr(число_денег, ширина_ячейки, выравнивание, знаков_после_запятой)

Date(строка) - возвр. число, соответствующее заданной дате. Формат строки: "dd/mm/yyyy"
или "d/m/yy", главное, чтоб не было пробелов.
Date(день, месяц, год) - то же самое. Возвращенная дата - число дней с 30/12/1899
DateToStr(дата_как_число) - вернуть строку, соотв. дате
DateToStr(дата_как_число, ширина) - если ширина 8, будет dd/mm/yy, если >=10 dd/mm/yyyy.
Если <8 - будут звездочки.
Day(дата_как_число) - вернуть день данной даты
Month(дата_как_число)
Year(дата_как_число)
IsLeapYear(год) - true, если год - високосный

FormatStr(строка,ширина)
FormatStr(строка,ширина,не_показывать_точки) - урезать/расширить строку до данной
ширины. Если строка длиннее - последние 3 символа будут "...", если
не_показывать_точки==false или опущено.

LTrim - убрать пробелы слева
RTrim - справа
Trim - слева и справа

Left(строка,число букв) - как в Basic
Right(строка,число букв)


Так что возьми Str() и вторым аргументом пусти кол-во знаков после запятой... :wink:


Top
   
 Post subject:
PostPosted: 2006-04-12 16:28:05 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
типа:

Code:
x = 2,54
y = x - val( str( x, 0 ) )
UO.Print( str( y ) )


Попробуй...

Хм, а может тебе Int() попробовать? :shock:


Top
   
 Post subject:
PostPosted: 2006-04-12 16:33:26 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Quote:
Так что возьми Str() и вторым аргументом пусти кол-во знаков после запятой...

Спасибки Edred... :P :P :P :P
А чтож ты нигде не прибьешь на форуме эту инфу???
Еще интересны команды общения с файлами, может это тож у тебя есть?


Top
   
 Post subject:
PostPosted: 2006-04-12 16:40:24 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Edred wrote:
типа:

Code:
x = 2,54
y = x - val( str( x, 0 ) )
UO.Print( str( y ) )


Попробуй...

Хм, а может тебе Int() попробовать? :shock:


Code:
str(int(x))
- округляет, причем именно так как мне и надо - отбрасывает дробную часть...

Code:
str( x, 0 )
- округляет по математическим правилам: если <5 то в меньшую, если >5 то в большую...

Еще раз спасибки...


Top
   
 Post subject:
PostPosted: 2006-04-13 00:42:57 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Der wrote:
А чтож ты нигде не прибьешь на форуме эту инфу???
Еще интересны команды общения с файлами, может это тож у тебя есть?


Дык это же из доки, которая идет в комплекте с скриптовым модулем... или, по крайней мере, когда-то шла. Откуда-то же я ее взял? :shock:

Файлы:

1. Стандартный способ, через класс:

Code:
Класс FILE:
пример:
sub main()
  var f=file("c:\имя файла")
  var s=0
  f.open()
  while not f.eof() and not fatal error
    s=safe call f.readnumber()
    if not fatal error then
      dbgmsg(s)
    endif
  wend
  f.close()
endsub

Методы класса:
  File(имя файла) - конструктор
  Open()   - открыть на чтение/запись. Возвращает true==открылся удачно
  Create()   - затереть файл. Возврат так же
  Eof()      - true == конец
  ReadLn()   - возвращает строку из файла. Строку полностью!!!
  ReadString()   - возвр. слово из файла до пробела/TAB
  ReadNumber() - число
  Write(строка/число) - запись строки/числа в файл.
  WriteLn(строка/число) - запись строки/числа в файл+перевод строки.
  WriteLn()   - просто запись перевода строки
  Close()   - закрыть файл и освободить память из-под класса. После вызова Close() с
файлом больше работать нельзя (даже вызвав Open).


2. Работа с файлами есть (более удобная) в АСМе. Частично документированная, частично - фиг. Как АГРС выложит свежую версию, с докой разберемся...


Top
   
 Post subject:
PostPosted: 2006-04-13 00:52:09 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Кстати, тема-то есть такая в ФАКе.
viewtopic.php?t=805
правда, там всего один файл вывален, а у меня их пяток... :shock:


Top
   
 Post subject:
PostPosted: 2006-04-13 01:01:05 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
Так сделай доброе дело, выложи остальные :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 15 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited