powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Число воспринимается как строка
8 сообщений из 8, страница 1 из 1
Число воспринимается как строка
    #34359909
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть несколько полей ввода и кнопка, в ответ на нажатие которой значения полей складываются в этой клиентской функции -

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        function PodP(){
        var cost= 0 , payed= 0 , pdv= 0 , costW= 0 , payedW= 0 ;
        costW  =  document.Form1.tbCost.value; 
        payedW =  document.Form1.tbPayed.value;
        cost   =  document.Form1.tbSpouseCost.value; 
        payed  =  document.Form1.tbSpousePayed.value;
        pdv    =  (costW+cost-payed-payedW)* 1 . 176471 * 0 . 15 ;
        document.Form1.tbSpousePDV.value = pdv.toFixed( 2 );
        }

Почему-то значение costW воспринимается как текст и если ввести 4 значения
100
10
200
20

то получим 100170, т.е. от 200 10 и 20 нормально отнимаются, а 100 идёт как число.

Почему?
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34359914
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как побороть?
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34359955
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот уж не ожидал такого вопроса от hDrummer'а. Ну да ладно. Сложить можно всё, а вот вычитание - это удел только чисел. В жабаскрипте тип данных - очень расплывчатое понятие. 100 является и числом, и строкой. При сложении надо явно приводить переменную к какому-нибудь типу. Короче, юзай parseInt(строка).
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34359961
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поборол умножением

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        function PodP(){
        var cost= 0 , payed= 0 , pdv= 0 , costW= 0 , payedW= 0 ;
        costW  =  document.Form1.tbCost.value* 1 ; 
        payedW =  document.Form1.tbPayed.value* 1 ;
        cost   =  document.Form1.tbSpouseCost.value* 1 ; 
        payed  =  document.Form1.tbSpousePayed.value* 1 ;
        pdv    =  (costW+cost-payed-payedW)* 1 . 176471 * 0 . 15 ;
        document.Form1.tbSpousePDV.value = pdv.toFixed( 2 );
        }
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34359969
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkyLightВот уж не ожидал такого вопроса от hDrummer'а. Ну да ладно. Сложить можно всё, а вот вычитание - это удел только чисел. В жабаскрипте тип данных - очень расплывчатое понятие. 100 является и числом, и строкой. При сложении надо явно приводить переменную к какому-нибудь типу. Короче, юзай parseInt(строка).

Это я всё понимаю, просто надо было быстро исправить в старом проекте расчёт, а сам упёрся, решил подстраховаться :)
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34359975
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же с Javascript имею дело раз в год, эпизодически.
Да-да, этоя оправдываюсь :)
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34360043
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
можно использовать объект Number
--



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Число воспринимается как строка
    #34360085
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, умножением я тип обозначил, так что обойдёмся в данном случае так.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Число воспринимается как строка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]