Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   єксепшн "несоответствие типов" (https://javascript.ru/forum/misc/4292-ehksepshn-nesootvetstvie-tipov.html)

Overloaded 09.07.2009 14:43

єксепшн "несоответствие типов"
 
есть ф-я, выкинул все. Вызываю так
BCD4_to_INT(0х1234)
Если закомментировать строчку в ФОРе bcd/= 0x10; -эксепшн не вылетает.
Что ему от меня надо?) С каких это пор инт нельзя делить на константу?
Как бороться? Помогите плз, это срочно!
function BCD4_to_INT(bcd: int): int
{
	var i;
	var res: int;	
	res=0;
	
	for(i=0; i<4; i++)
	{		
		bcd/= 0x10;	
	}
	return res;	
}

Riim 09.07.2009 15:35

Цитата:

Сообщение от Overloaded
function BCD4_to_INT(bcd: int): int
{
var i;
var res: int;
res=0;
 
for(i=0; i<4; i++)
{
bcd/= 0x10;
}
return res;
}

Это на каком языке написано?

Overloaded 09.07.2009 15:50

не смешно)) А что, на яваскрипт не смахивает разве? ))

B~Vladi 09.07.2009 15:55

Если везде убрать : int - смахнёт....

Riim 09.07.2009 15:57

Overloaded, а какой сейчас, по-вашему, год? И сразу вдогонку: сколько "сейчас" примерно стоит доллар и евро? И в каком году кончился глобальный финансовый кризис? Ну, помните был такой?

overloaded 09.07.2009 16:34

хм) это типа я древний? Ну допустим хочу я чтоб тип был четко задан. Что в этом плохого? Рсурсы фанатично не экономлю.. Дело не в этом. А в том что обьект чудесным оьразом при вышеописанном делении прчему-то превращается в дабл мне же это совсем не надо.. Или опять же если использовать обьект то этот пример то заработает. Но вышеоеписанная ексепшн вылезет в другом месте. Охота разобраться. Обьясните плз почему ТАК как написано НЕ должно работать?

Riim 09.07.2009 16:47

Цитата:

Сообщение от overloaded
хм) это типа я древний?

Скорее наоборот.
Так же я все больше склоняюсь к варианту, что ты просто издеваешься.

overloaded 09.07.2009 17:00

отнюдь нет. Открою секрет - джаваскрипт мне никогда не нравился, и собственно пишу на нем только потому что встроен он в мое ПО как скриптовый язык. Ответ на вопрос все-таки очень хотелось бы узнать - без лишних лирических отступлений, если можно)) повторюсь
почему ТАК как написано НЕ должно работать? в чем КОНКРЕТНО ошибка? В том, что целое нельзя делить на целое? или в чем?

overloaded 09.07.2009 17:05

повторюсь - ошибка ЄКСЕПШОН тоесть при работе а не компиляции. Синтаксис абсолютно верный. если на это намек. и вообщето явное обьявление типа в яваскрипте позволяется

B~Vladi 09.07.2009 17:08

Цитата:

Сообщение от overloaded
и вообщето явное обьявление типа в яваскрипте позволяется

overloaded, привыкли к си?;)

overloaded 09.07.2009 17:26

да я-то привык)) но ПОЖАЛУЙСТА ответьте на вопрос! ) почему не должно работать?

B~Vladi 09.07.2009 17:37

То, что вы написали - синтаксически не правельно...
Здесь всё нормально:
function BCD4_to_INT(bcd){
    for(var i=0; i<4; i++){        
        bcd/= 0x10;
    	alert(bcd);    
    }  
}
BCD4_to_INT(0x1234);

B~Vladi 09.07.2009 17:40

Ах да... JS сам прекрасно справляется с определением типов, так что, думаю, нестоит так заморачиваться... Если вы сунулись в JS - привыкайте к другим манерам программирования;)

B~Vladi 09.07.2009 17:51

А вот ещё... заметил, что в строке BCD4_to_INT(0x1234); в числе 0x1234 был не икс, а русская хэ...

Kolyaj 09.07.2009 17:54

Цитата:

Сообщение от overloaded
встроен он в мое ПО как скриптовый язык.

Вы пишете на каком-то загадочном диалекте, который никто из здесь присутствующих никогда не видел. Вы уверены, что у вас там вообще js? :)

overloaded 09.07.2009 18:10

то что х это не страшно..) я не копипастил сам написал. еще раз повторюсь что коментирование строки проблему как бы решает поэтому это явно не связано с передачей параметра функции \\ ну собственно движок от микрософт, например и мат , строковые функции работают.. А вам скрипт сообщает о том что синтаксис неправильный? именно на этапе компиляции?? с явным определением типов? мол в такойто строке.. Попробуте, возможно просто вы не знали о таких возможностях ЖС )

overloaded 09.07.2009 18:12

Цитата:

Сообщение от B~Vladi (Сообщение 24036)
Ах да... JS сам прекрасно справляется с определением типов, так что, думаю, нестоит так заморачиваться... Если вы сунулись в JS - привыкайте к другим манерам программирования;)

в том то и дело что он делает ее дабл. И после ее надо мас.флоор делать. Меня єто не устраивает.(((

B~Vladi 09.07.2009 18:17

Цитата:

Сообщение от overloaded
є

:D
Цитата:

Сообщение от overloaded
это явно не связано с передачей параметра функции

Не знаю, какой там у вас самопальный интерпретатор (а может и компилятор:blink: ), но у нас это вызывает ошибку.
Цитата:

Сообщение от overloaded
А вам скрипт сообщает о том что синтаксис неправильный? с явным определением типов? мол в такойто строке..

Да. В каждой строке, где есть int + ваша хэ.
Цитата:

Сообщение от overloaded
именно на этапе компиляции??

Мы его интерпретируем;)

B~Vladi 09.07.2009 18:29

Цитата:

Сообщение от overloaded
Попробуте, возможно просто вы не знали о таких возможностях ЖС )

Кстати, хочу спросить... Когда-то один мой знакомый, программер СИ с огромным опытом, написал в JS-коде, в if, неизвесный мне оператор (по-моему логический), которого нет даже в спецификации... Дк JS его корректно обработал!!! Правда запускалось это из-под левого компилятора(!)... Дк вот... Какой в си есть 2-3 символьный оператор, которого нет в JS?

B~Vladi 09.07.2009 18:33

Цитата:

Сообщение от overloaded
мне же это совсем не надо..

Цитата:

Сообщение от overloaded
Меня єто не устраивает.(((

Вот человек какой... :D :write:

overloaded 09.07.2009 18:55

=)))) о да я аццки критичен)) хм. значит наверное действительо разные жаваскрипты.. и никакой он не самопальный. яж писал.. есть еще ВБ )) но он мне еще больше не нравится. насчет оператора не знаю.. Все сишные работают нормально, не встречал чтоб не работали.. наверное это чтото страшное ) должно было быть. << может? ) а проблема таки осталась.. Странно он себя как то ведет.. надо таки попроьовать ВБ )

Riim 10.07.2009 03:22

overloaded, в нынешнем javascript-е нет возможности явно задать тип переменной. Эта возможность появится только в javascript2.0 , который сейчас в разработке. Причем типа "int" там, на сколько я знаю, не будет.


Цитата:

Сообщение от overloaded
ну собственно движок от микрософт

Цитата:

Сообщение от overloaded
есть еще ВБ

Вероятно, ты путаешь javascript с каким-нибудь Java.NET, а ВБ с VB.NET . Определись, на чем ты пишешь, и найди соответствующий форум.

B~Vladi 10.07.2009 10:51

Цитата:

Сообщение от overloaded
никакой он не самопальный.

:D
Цитата:

Сообщение от overloaded
яж писал..


B~Vladi 10.07.2009 10:53

Цитата:

Сообщение от overloaded
<< может?

неа.. что-то вроде такого - &< :blink:

x-yuri 10.07.2009 13:13

Цитата:

Сообщение от overloaded
А в том что обьект чудесным оьразом при вышеописанном делении прчему-то превращается в дабл

в javascript нету double, нету int есть просто числа (Number)

Цитата:

Сообщение от overloaded
и собственно пишу на нем только потому что встроен он в мое ПО как скриптовый язык

что за ПО и как встроен?

UPD: не заметил 2-ую и 3-ью страницы

overloaded 10.07.2009 18:01

я писал. что не я его писал..) а что он не самопальный)
вот например
http://www.codeproject.com/KB/cs/vsascripting.aspx#11
// use the jscript engine provided in the assembly Microsoft.JScript.dll

"в javascript нету double, нету int есть просто числа (Number)"

а по моему (могу ошибаться именно насчет яваскрипта) есть переменная типа обьект.
И она может быть не только числом а и чем угодно) например строкой.
И кстати обьекты из сишарпа отлично понимаются в яваскрипте.
или JScript это не яваскрипт? ))

overloaded 10.07.2009 18:18

разобрался. у меня жскрипт.нет )
http://en.wikipedia.org/wiki/JScript


Часовой пояс GMT +3, время: 00:37.