Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

как округлить Float до десятых

Статус пользователя coolman
сообщение 1.7.2014, 20:11
Сообщение #1


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

как округлить Float до десятых, из 0.699999 в 0.7 ?
нашел только при печати использовать %0.1f и floatround Функция преобразует дробное число в целое, а вот в десяные не нашел.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 1.7.2014, 20:14
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
trunc(number*100)/100


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 1.7.2014, 20:17
Сообщение #3
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

coolman,
floatround_floor, не?:)
Код:
/* Different methods of rounding */
enum floatround_method {
floatround_round = 0,
floatround_floor,
floatround_ceil,
floatround_tozero
};

ps.gif Не уверен xD

Отредактировал: trollface, - 1.7.2014, 20:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя coolman
сообщение 1.7.2014, 20:34
Сообщение #4


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

Цитата(Metal Messiah @ 1.7.2014, 23:14) *
trunc(number*100)/100

что еще за trunc
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nixon
сообщение 1.7.2014, 20:36
Сообщение #5


Стаж: 12 лет

Сообщений: 399
Благодарностей: 192
Полезность: 589

линк
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя coolman
сообщение 1.7.2014, 20:37
Сообщение #6


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

Цитата(trollface @ 1.7.2014, 23:17) *
coolman,
floatround_floor, не?:)
Код:
/* Different methods of rounding */
enum floatround_method {
floatround_round = 0,
floatround_floor,
floatround_ceil,
floatround_tozero
};

ps.gif Не уверен xD

ну вот чето подобное находил, не проверял, но пишут что дробное до целого преобразует, а мне дробная часть как раз интерисует.
Хотя может быть как-то и по другому можно реализовать мою задумку, как буду на сайте может быть опишу что мне нужно.

Цитата(Nixon @ 1.7.2014, 23:36) *


Описание:
Ну что тут описывать то, вот результат примера:
float-round

Float: 1.20
Integer num: 1
Integer num: 1
Integer num: 2
Integer num: 1

Float: 1.50
Integer num: 2
Integer num: 1
Integer num: 2
Integer num: 1

Float: 1.70
Integer num: 2
Integer num: 1
Integer num: 2
Integer num: 1

где тут дробное????
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 1.7.2014, 20:38
Сообщение #7


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

попробуй заюзать %.2f, а float = (n*10)/10 - где n - твое число
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 1.7.2014, 20:46
Сообщение #8
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(coolman @ 1.7.2014, 20:11) *
как округлить Float до десятых, из 0.699999 в 0.7 ?
нашел только при печати использовать %0.1f и floatround Функция преобразует дробное число в целое, а вот в десяные не нашел.

1. умножить на 10, заюзать floatround, поделить на 10
2. заюзать float_to str, затем format(string, len, "%0.1f", string), и обратно str_to_float crazy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 3.7.2014, 16:58
Сообщение #9


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Цитата
заюзать float_to str,.. и обратно str_to_float

не кошерно

Цитата
1. умножить на 10, заюзать floatround, поделить на 10

собственно что я и написал. Что еще за trunc? ну можно round() или floor(), короче я метод сказал, а конкретная реализация на AMXX это проблема ТС'а, мануалы по AMXX c описанием математических функций округления копипастить не хочу


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 3.7.2014, 17:06
Сообщение #10
Стаж: 12 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

Metal Messiah,
floor() = функции АМХХ floatround_floor
ну если следовать логике

Отредактировал: trollface, - 3.7.2014, 17:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.7.2014, 19:07
Сообщение #11
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(Metal Messiah @ 3.7.2014, 16:58) *
не кошерно

Да, вариант наркоманский, но все же рабочий:D
Увы, на функции округления AMXX не богат
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: