@AlexM зачем мышь по координатам двигаешь?)
Удаление ненужного символа
-
Здравствуйте,прошу прощения сразу за глупые вопросы:
1.Ситуация такая: на сайте отображается баланс такого формата: $0.01 как сделать так что бы убрать символ $?
2. Привести значение из 0,01 в 1 например? ( сделал через конструктор,но есть одно но: мне выдает такое:
NEW_VARIABLE: "0.07", NEW_VARIABLE11: 7.000000000000001.
Может ли это помешать потом в скрипте?
Заранее спасибо за ответ. -
@moemope
$0.01
0,01
хм, регуляркой? (у вас точка или запятая?;-) ), возможно самим Xpath получить текст? Обойтись без нее. На куче сайтов цифры и знаки это разное. Смотреть на самом сайте
$(\d+[,.]\d*)
избавится от доляра2 хз, для чего вам эта переменная. Может вы потом астрологические прогнозы по ней пишите, а может просто в лог выводите
-
@allive Через точку делал,через запятую попробовал,вообще выбивает "null" формула максимально проста: ([[NEW_VARIABLE]]) * (100)
Попробовал через Xpath и твою формулу,выдало пустой ответ.Можно пожалуйста другой способ связи с тобой? если конечно есть время и желание помочь)
-
@moemope
Желание есть. Иначе не предложил бы. Первое на сайте посмотрите Xpath-ом поточнее возможно цифры это второй елемент. Сайтостроители тоже не любят гемороев и работают по шаблону. $ я так понимаю статика. А вот цифири нет. Я кучи видел где наоборот танцы с бубном взять всю строку.
Второе, да сам не волшебник, а только учусь. регулярку накидал вот здесь) унем работает.
https://bablosoft.github.io/RegexpConstructor/
В басе тоже))
[0_1528645409296_test_02.xml](Загрузка 100%)
А вы смотрели что именно получает по Xpath какой текст? Эта регулярка на $0.01 или $0,01 ну или скока цифирей там, но с запятой или точкой ей пофигу.
Доляр то получает? Без него конечно она выдаст пустой ответ -
@moemope said in Удаление ненужного символа:
0,01
Не совсем понятна логика округления. Но для вашего примера могу предложить такое решение parseInt("$0,01".match(/\d+/g).splice(-1).join() )
Результат будет равен 1. Вообщем при любом числе, целом или дробном результат будет целое число.
Если же есть конкретный коэфициент на который надо увеличить число, например 100, то "$0,01".replace('$','').replace(',','.')*100
-
-
-
@allive xpath ничего не получает. это $0.01 проблема в том что с Xpath я никогда не работал,не особо представляю как именно это работает) жаль что посмотреть шаблон твой нельзя который ты попробовал скинуть)
@Denis_krsk А для тех у кого IQ меньше 70,можете подсказать как именно применить вашу формулу?@ruzne а можно узнать по поподробнее почему именно такое число выходит?
-
@moemope
Ну, саму регулярку ты видишь на скрине. Повторить ее не трудно. Используй ссылку что дал на конструктор для составления. Он на английском, но просто и понятно. Первое выбираем посимвольно что будем искать. Он возьмет это в скобки. Там можешь мышкой наводить и тыкать например этот символ он позеленеет и всплывет окошко в нем указать один раз или ни разу или еще как. И так далее. Можно целые предложения выделять. В общем полет фантазии.
Зеновский конструктор очень часто не подходит для баса.
А как тогда получается текст? Регулярным выражением? из полученного body? -
@moemope
0.07 это около 7/100так получилось что числа хранятся в двоичном формате
(7).toString(2) /* / */ (100).toString(2)приведет к бесконечной дроби, хранить бесконечность в 8 байтах очень трудно
из за того что мы не знаем сколько точно 7/100 при умножении на 100 возникает ошибка точности, попробывайте ради лулзов выполнить в консоли (7/100)*100 -
@moemope "$0,01".replace('$','').replace(',','.')*100 замени "$0,01" на переменную например [[PRICE]].replace('$','').replace(',','.')*100 и используй в выражение в установить переменную. Хотя по хорошему следует сначал проверять содержит ли строка цифры. Потому что если так получится что она будет пустой или еще что, то будет ошибка
-
@allive Я попробовал,но для меня слишком это сложно.Я просто работал самым примитивным образом (получить текст) и дальше разными способами пытался обработать его.
@ruzne Вот так и ломаются школьные представлении о математике,хорошее объяснение - спасибо.
@Denis_krsk Твоя формула помогла,очень благодарен.Я бы сам никогда не додумался бы бы скорее всего.Всем спасибо,тему грубо говоря можно закрывать
