Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как узнать, float или int значение присвоено переменной? (https://javascript.ru/forum/misc/32766-kak-uznat-float-ili-int-znachenie-prisvoeno-peremennojj.html)

gadyuka 29.10.2012 16:25

Как узнать, float или int значение присвоено переменной?
 
Переменной, например var bar, может быть присвоено или float, или int значение, например, либо 4.0, либо 4

В другом месте кода принципиально важно узнать, было ли присвоено 4.0, float, или 4, int. Это вообще хоть как-то можно сделать?

Пока в голову пришла только проверка типа if (blah.toString.indexOf(".")>0)... но оно работает, только если в дробной части есть хоть что-то, отличное от нуля, а если .0 - не работает. А очень надо!

Skipp 29.10.2012 16:35

Можно спросить, а зачем?:)
Вообще по сути в js нету не int не float, это всё объекты, и при обращении к числу типа 1.0 js сам его преобразует в 1
alert(1.0)

Самый простой способ узнать int это или нет это
if(number % 1 === 0);

но этот способ так же не работает с 1.0 и при обрашении через toString функция получит уже не 1.0, а просто 1.

gadyuka 30.10.2012 04:43

Цитата:

Сообщение от Skipp (Сообщение 212872)
Можно спросить, а зачем?:)

В серверной части проекта целые и действительными числа обрабатываются по разному, целые складываются, действительные используются как множитель. Параметров там очень много, и к одним и тем же параметрам могут как прибавляться какие-то числа, так они могут и умножаться на какие-то числа. А в клиентской части, на JS, пользователю нужно отображать целые числа просто как числа, а действительные, как проценты прибавки к значениям параметров. Вот и надо их как-то JS-ом различать, чтобы по-разному отображать.

Skipp 30.10.2012 10:38

А с серверной стороны их никак нельзя пометить? Обычно это на сервере делают.

Severtain 30.10.2012 15:31

php преобразования поищите )


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