Округление и отбрасывание целой части...
Moderators: Murderator+, Murderator
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Округление и отбрасывание целой части...
Подскажите как округлить и отбросить челую часть числа...
-
- Posts: 308
- Joined: 2005-07-17 15:30:52
- Location: www.drw.ru
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Sanch wrote:Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.
Мля, я спрашиваю как это сделать в инжекте. Почти во всех языках программирования есть всроенная функция округления. НАсчет натуральных чисел я тоже ничего не знаю, если это так то всё намного проще.
Кароч, пиши по делу, а то ты ведь всего 2 недели скрипты пишешь и уже типо бог чтоль?
ЗЫ: Тем более я не алгоритм округления спрашивал, а то как это в инжекте сделать(командой). Просто надоело в формулировке вопроса каждый раз добавлять "...в инжекте"
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Destruction wrote:Sanch wrote:Взять учебник по матиматике класс этак 6 и посмотреть или подробнее обьяснить что ты хочешь, тк на скок я знаю инжект предназначен для работы с натуральными числами, хотя я могу ошибаться.
uo.print(str(7/2)) ; проверь
Проверил: БУДЕТ 3.5
Так что ,Sanch, сначала сам проверь, потом говори!
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
-
- Posts: 308
- Joined: 2005-07-17 15:30:52
- Location: www.drw.ru
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Делать было нечего и я выяснил, что:
1)Инжект хранит 6 знаков после запятой... (в окресности нуля(т.е. не в експоненциальной форме) (не знаю как по умному сказать
)
2)Выяснил как ему сунуть число в експоненциальной форме: 1.234567890e+123
3)Максимальное число которое инжект понимает это 1.7976931348623159078e+308 (тоесть 2 в 1024 степени не считая цифр дальше 19 разряда {я так понимяю что тут дело в том что 0.1 нельзя записать в виде числа с плавающей запятой} [хотя для некоторых чисел он цифры после 14 разряда не воспринимает])
4)Выяснил наиболее близкое число к нулю: 0.1e-5
5)Минимальное число: -1.7976931348623159078e+308
1)Инжект хранит 6 знаков после запятой... (в окресности нуля(т.е. не в експоненциальной форме) (не знаю как по умному сказать

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

4)Выяснил наиболее близкое число к нулю: 0.1e-5
5)Минимальное число: -1.7976931348623159078e+308
Der wrote:Sanch wrote:Почти во всех языках программирования есть всроенная функция округления.
Автор скриптового модуля в доке пишет: "Язычок". Не "язык программирования", а язычок. И в этом "язычке" есть только:
Code: Select all
Константы:
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() и вторым аргументом пусти кол-во знаков после запятой...

типа:
Попробуй...
Хм, а может тебе Int() попробовать?
Code: Select all
x = 2,54
y = x - val( str( x, 0 ) )
UO.Print( str( y ) )
Попробуй...
Хм, а может тебе Int() попробовать?

-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
-
- Expert!
- Posts: 1032
- Joined: 2006-02-25 21:48:38
Edred wrote:типа:Code: Select all
x = 2,54
y = x - val( str( x, 0 ) )
UO.Print( str( y ) )
Попробуй...
Хм, а может тебе Int() попробовать?
Code: Select all
str(int(x))
Code: Select all
str( x, 0 )
Еще раз спасибки...
Der wrote:А чтож ты нигде не прибьешь на форуме эту инфу???
Еще интересны команды общения с файлами, может это тож у тебя есть?
Дык это же из доки, которая идет в комплекте с скриптовым модулем... или, по крайней мере, когда-то шла. Откуда-то же я ее взял?

Файлы:
1. Стандартный способ, через класс:
Code: Select all
Класс 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. Работа с файлами есть (более удобная) в АСМе. Частично документированная, частично - фиг. Как АГРС выложит свежую версию, с докой разберемся...
Кстати, тема-то есть такая в ФАКе.
viewtopic.php?t=805
правда, там всего один файл вывален, а у меня их пяток...
viewtopic.php?t=805
правда, там всего один файл вывален, а у меня их пяток...
