Учитывая строковое представление числа, как я могу преобразовать его number
в TypeScript?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
typescript
Paul0515
источник
источник
console.log(typeof <number><any>"1", typeof Number("1"))
будет печататьstring number
.Ответы:
Точно так же как в JavaScript , вы можете использовать
parseInt
илиparseFloat
функцию, или просто используйте унарный+
оператор:Все упомянутые методы будут иметь правильную типизацию и будут правильно анализировать простые десятичные целочисленные строки, например
"123"
, но будут вести себя по-разному для различных других, возможно ожидаемых, случаев (например"123.45"
) и угловых случаев (напримерnull
).Таблица взята из этого ответа
источник
Способ Typescript сделать это будет:
как ответили здесь: https://stackoverflow.com/a/23440948/2083492
источник
isNaN
функцию.let a = Number('x') || 0;
-Number('x')
вернул быNaN
, что "фальси". Следовательно,a
будет назначен0.
намного чище и, возможно, (немного) быстрее, чем использование троичного оператора и разбор дважды.Для наших друзей-пользователей Angular:
Внутри шаблона ,
Number(x)
иparseInt(x)
выдает сообщение об ошибке, и+x
не имеет никакого эффекта. Допустимое литье будетx*1
илиx/1
.источник
Number
не входит в область оценки. Вы можете написать,class MyComponent { Number = Number; }
чтобы использовать его.Как показывают другие ответы здесь, есть несколько способов сделать преобразование:
Я хотел бы упомянуть еще одну вещь,
parseInt
хотя.При использовании
parseInt
имеет смысл всегда передавать параметр radix . Для десятичного преобразования, то есть10
. Это значение по умолчанию для параметра, поэтому его можно опустить. Для двоичного, это2
и16
для шестнадцатеричного. На самом деле, любой корень между 2 и 36 включительно работает.parseInt
Функция, хорошо, разбирает строки , чтобы преобразовать их в числа. В некоторых реализациях JSparseInt
ведущие нули анализируются как восьмеричные:Тот факт, что код становится понятнее, является хорошим побочным эффектом от указания параметра radix.
Поскольку
parseFloat
в radix 10 анализируются только числовые выражения, здесь не требуется параметр radix.Подробнее об этом:
источник
Объясняя сказанное Райаном, TypeScript охватывает идиомы JavaScript в целом.
Все интересные подробности в JavaScript Type Conversion .
источник
Вы можете следовать одним из следующих способов.
источник
Преобразование строки в число:
В Typescript мы конвертируем строку в число следующими способами:
ParseInt()
: Эта функция принимает 2 аргумента, первый - строка для анализа. Второе - основание (основание в математических системах счисления, например, 10 для десятичной и 2 для двоичной). Затем он возвращает целое число, если первый символ не может быть преобразован в число,NaN
будет возвращено.ParseFloat()
: Принимает в качестве аргумента значение, которое мы хотим проанализировать, и возвращает число с плавающей запятой. Если значение не может быть преобразовано в число,NaN
возвращается.+
operator: оператор при правильном использовании может привести строковое значение к числу.Примеры:
Какой использовать?
ParseInt()
если вы хотите, чтобы строка была преобразована в целое число . Однако тип данных по-прежнему является плавающим, поскольку все числовые значения являются значениями с плавающей запятой в TS . Также используйте этот метод, когда вам нужно указать основание числа, которое вы хотите проанализировать.ParseFloat()
когда вам нужно разобрать строку в число с плавающей запятой .+
оператор перед строкой, чтобы привести ее к числу с плавающей запятой . Преимущество этого в том, что синтаксис очень короткий.источник
Самый простой способ - использовать + strVal или Number (strVal)
Примеры:
источник
Есть встроенные функции, такие как
parseInt()
,parseFloat()
иNumber()
в Typescript вы можете использовать их.источник
Вызовите функцию с помощью>> converttstring ('10 .00 ')
parseFloat (string) => Может использоваться для преобразования в float, toFixed (4) => во сколько десятичных знаков
parseInt (str) => Может использоваться для преобразования в целое число
источник
Онлайн инструмент для преобразования номеров
Конвертер чисел
источник
Есть три способа
источник
У многих из вас возникают проблемы с преобразованием типов данных, которые трудно решить в ситуациях ионного программирования, поскольку этот язык является новым, здесь я подробно опишу инструкции для пользователя, чтобы узнать, как преобразовать данные ионного типа в строковые данные введите целое число
В таких языках программирования, как java, php, c, c ++, ... все могут легко перемещать данные, тогда как в ionic можно также создавать для нас преобразование данных, что также является простым способом, не в последнюю очередь в других языках программирования.
источник
если вы говорите только о типах, как говорили другие, parseInt () и т. д. вернет правильный тип. Кроме того, если по какой-либо причине значением может быть как число, так и строка, и вы не хотите вызывать parseInt (), выражения typeof также приведут к правильному типу:
источник
Вот модифицированная версия функции StrToNumber. Как прежде,
Этот ответ является возможным решением, которое лучше подходит для первоначального вопроса, чем мой предыдущий пост.
источник
машинопись должна знать, что наш
var a
собирается быть эфиромNumber || String
источник
Вы всегда можете использовать опцию приведения. Сначала вы должны преобразовать ваш объект в «неизвестный» тип, а затем привести его к ожидаемому типу объекта.
источник
console.log(typeof <number><unknown>"1", typeof Number("1"))
напечатаетstring number
.