Что нового

[Данные, строки] Фильтрация 3 последних чисел после знака "." (точка)

nu3dell

Осваивающий
Сообщения
139
Репутация
24
Есть например число 455.787845484, и это этого числа нужно оставить только 3 цифры после "." (точки), вот так должно получиться 455.787

Но при этом число может быть и такое 4.4555787845. Что значит знак точки всегда может быть в разных местах, и все равно должно получиться вот так 4.455


P.S И еще вопрос, как в input запретить вводить слова, а можно только цифры и знак точка (вот знаю $es_number но в него не входит точка)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
nu3dell
Без округления?
Код:
$string =  4.4555787845
$astring=StringSplit($string, '.')
If Not @error Then $string = $astring[1] & '.' & StringLeft($astring[2], 3)
ConsoleWrite($string & @LF)
 
Автор
nu3dell

nu3dell

Осваивающий
Сообщения
139
Репутация
24
Re: [Данные, строки] Фильтрация 3 последних чисел после знака \\\".\\\" (точка)

Да без округления. Но только как сделать если целое число? А то если нет "." то появлеться ошибка, а у меня могут быть и с точкой и без

Посмотри пожалуйста еще добавил в первый пост "P.S"


Добавлено:
Сообщение автоматически объединено:

P.S Решил вот так

Код:
$string = 44.555787845
$astring=StringSplit($string, '.')
if @error Then
ConsoleWrite($string)
Else
$string = $astring[1] & '.' & StringLeft($astring[2], 3)
ConsoleWrite($string)
EndIf



Добавлено:
Сообщение автоматически объединено:

Теперь как сделать

P.S И еще вопрос, как в input запретить вводить слова, а можно только цифры и знак точка (вот знаю $es_number но в него не входит точка)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Переделал.
OffTopic:
На самом деле это корявый вариант, можно и проще, но я что-то туплю)


По второму вопросу, к сожалению, не знаю, я обычно проверяю символы уже после ввода.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
надо просто отбросить или округлить? потому как при округлении отбрасываемое число большее 5 увеличивает разрядность соседнего числа на 1.
 
Автор
nu3dell

nu3dell

Осваивающий
Сообщения
139
Репутация
24
Просто отбросить, ну уже тема решена, мне отлично подходит тот вариант

Может ты подскажешь насчет:
Код:
P.S И еще вопрос, как в input запретить вводить слова, а можно только цифры и знак точка (вот знаю $es_number но в него не входит точка)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Данные, строки] Фильтрация 3 последних чисел после знака \".\" (точка)

а вообще, надо пользоваться
Код:
StringFormat

например
Код:
$a = 44.457757575
StringFormat('%.3f', $a )



Добавлено:
Сообщение автоматически объединено:

nu3dell [?]
Может ты подскажешь насчет:
не подскажу, ибо

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 

beliy

Продвинутый
Сообщения
372
Репутация
72
еще алгоритм, используя типы переменных:

Код:
$startVar = 445.457757575
$n=3 ;к-во символов после точки
$endVar = Int($startVar * 10 ^ $n)/(10 ^ $n)
MsgBox(64, "value", $endVar)
 
Верх