Yoko
http://forum.yoko.com.ua/

Округление и отбрасывание целой части...
http://forum.yoko.com.ua/viewtopic.php?f=3&t=7341
Page 1 of 1

Author:  DerMeister =) [ 2006-04-12 14:41:51 ]
Post subject:  Округление и отбрасывание целой части...

Подскажите как округлить и отбросить челую часть числа...

Author:  Sanch [ 2006-04-12 14:54:19 ]
Post subject: 

Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.

Author:  Destruction [ 2006-04-12 15:03:16 ]
Post subject: 

Sanch wrote:
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.

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

Author:  DerMeister =) [ 2006-04-12 15:05:05 ]
Post subject: 

Sanch wrote:
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.


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

Author:  DerMeister =) [ 2006-04-12 15:08:41 ]
Post subject: 

Destruction wrote:
Sanch wrote:
Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.

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


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

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

Author:  DerMeister =) [ 2006-04-12 15:09:44 ]
Post subject: 

Так как округлить то? Или нету такой команды? :)

Author:  Sanch [ 2006-04-12 15:33:52 ]
Post subject: 

Quote:
пиши по делу, а то ты ведь всего 2 недели скрипты пишешь и уже типо бог чтоль

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

Author:  DerMeister =) [ 2006-04-12 16:10:08 ]
Post subject: 

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

Author:  Edred [ 2006-04-12 16:25:17 ]
Post subject: 

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:

Author:  Edred [ 2006-04-12 16:28:05 ]
Post subject: 

типа:

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


Попробуй...

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

Author:  DerMeister =) [ 2006-04-12 16:33:26 ]
Post subject: 

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

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

Author:  DerMeister =) [ 2006-04-12 16:40:24 ]
Post subject: 

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 то в большую...

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

Author:  Edred [ 2006-04-13 00:42:57 ]
Post subject: 

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

Author:  Edred [ 2006-04-13 00:52:09 ]
Post subject: 

Кстати, тема-то есть такая в ФАКе.
viewtopic.php?t=805
правда, там всего один файл вывален, а у меня их пяток... :shock:

Author:  flake [ 2006-04-13 01:01:05 ]
Post subject: 

Так сделай доброе дело, выложи остальные :)

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/