Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Число воспринимается как строка / 8 сообщений из 8, страница 1 из 1
28.02.2007, 11:23
    #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
28.02.2007, 11:23
    #34359914
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число воспринимается как строка
И как побороть?
...
Рейтинг: 0 / 0
28.02.2007, 11:31
    #34359955
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число воспринимается как строка
Вот уж не ожидал такого вопроса от hDrummer'а. Ну да ладно. Сложить можно всё, а вот вычитание - это удел только чисел. В жабаскрипте тип данных - очень расплывчатое понятие. 100 является и числом, и строкой. При сложении надо явно приводить переменную к какому-нибудь типу. Короче, юзай parseInt(строка).
...
Рейтинг: 0 / 0
28.02.2007, 11:32
    #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
28.02.2007, 11:33
    #34359969
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число воспринимается как строка
SkyLightВот уж не ожидал такого вопроса от hDrummer'а. Ну да ладно. Сложить можно всё, а вот вычитание - это удел только чисел. В жабаскрипте тип данных - очень расплывчатое понятие. 100 является и числом, и строкой. При сложении надо явно приводить переменную к какому-нибудь типу. Короче, юзай parseInt(строка).

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



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


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