8-900-374-94-44
[email protected]
Slide Image
Меню

Преобразование строки в число: Преобразование типов

Преобразования значений между строковыми и другими типами — Visual Basic

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья

Можно преобразовать числовое значение или

Booleanзначение даты и времени в значение String. Можно также преобразовать в обратном направлении из строкового значения в числовой или BooleanDate , если содержимое строки может быть интерпретировано как допустимое значение целевого типа данных. Если они не могут, возникает ошибка во время выполнения.

Преобразования для всех этих назначений в любом направлении сужают преобразования. Следует использовать ключевые слова преобразования типов (CBool, CDateCDecCDblCLngCSByteCShortCSngCByteCInt, CStr, CULngCUIntCUShortи ).CType Функции Format предоставляют Val дополнительный контроль над преобразованиями между строками и числами.

Если вы определили класс или структуру, можно определить операторы преобразования типов между

String классом или структурой. Дополнительные сведения см. в разделе How to: Define a Conversion Operator.

Преобразование чисел в строки

Функцию Format можно использовать для преобразования числа в форматированную строку, которая может включать не только соответствующие цифры, но и символы форматирования, такие как $знак валюты (например), разделители тысяч или символы группирования цифр (например,), и десятичный разделитель (например, ).. Formatавтоматически использует соответствующие символы в соответствии с параметрами региональных параметров, указанными в Windows панель управления.

Обратите внимание, что оператор объединения (&) может преобразовать число в строку неявно, как показано в следующем примере.

' The following statement converts count to a String value.  
Str = "The total count is " & count  

Преобразование строк в числа

Функцию Val можно использовать для явного преобразования цифр в строку в число. Val считывает строку, пока не будет обнаружен символ, отличный от цифры, пробела, табуляции, веб-канала строки или точки. Последовательности «&O» и «&H» изменяют базу системы чисел и завершают сканирование. Пока он не прекратит чтение, Val преобразует все соответствующие символы в числовое значение. Например, следующая инструкция возвращает значение 141.825.

Val(" 14 1.825 miles")

При преобразовании строки в числовое значение Visual Basic используется региональные параметры, указанные в Windows панель управления для интерпретации разделителя тысяч, десятичного разделителя и символа валюты. Это означает, что преобразование может быть выполнено в одном параметре, но не в другом. Например, "$14.20" является допустимым в языковом стандарте английского языка (США), но не в любом французском языковом стандарте.

См. также раздел

  • Преобразование типов в Visual Basic
  • Widening and Narrowing Conversions
  • Явные и неявные преобразования
  • Практическое руководство. Преобразование объекта к другому типу в Visual Basic
  • Преобразования массивов
  • Типы данных
  • Type Conversion Functions
  • Разработка глобализованных и локализованных приложений

Преобразование строки в целое число в Groovy

1. Обзор​

В этом кратком руководстве мы покажем различные способы преобразования из строки в целое число в Groovy.

2. Кастинг с

as

Первый метод, который мы можем использовать для преобразования, — это ключевое слово as , которое аналогично вызову метода asType() класса « :

@Test
void givenString_whenUsingAsInteger_thenConvertToInteger() {
def stringNum = "123"
Integer expectedInteger = 123
Integer integerNum = stringNum as Integer

assertEquals(integerNum, expectedInteger)
}

Как и выше, мы можем использовать int :

@Test
void givenString_whenUsingAsInt_thenConvertToInt() {
def stringNum = "123"
int expectedInt = 123
int intNum = stringNum as int

assertEquals(intNum, expectedInt)
}

3.

целое число

Другой метод — из расширения Groovy JDK для java.lang.CharSequence :

@Test
void givenString_whenUsingToInteger_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = stringNum.toInteger()

assertEquals(intNum, expectedInt)
}

4.

Целое#parseInt

Третий способ — использовать статический метод Java Integer.parseInt() :

@Test
void givenString_whenUsingParseInt_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = Integer.parseInt(stringNum)

assertEquals(intNum, expectedInt)
}

5.

Целое#intValue

Альтернативный метод — создать новый объект Integer и вызвать его метод intValue :

@Test
void givenString_whenUsingIntValue_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = new Integer(stringNum). intValue()

assertEquals(intNum, expectedInt)
}

Или, в этом случае, мы также можем использовать просто new Integer(stringNum) :

@Test
void givenString_whenUsingNewInteger_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = new Integer(stringNum)

assertEquals(intNum, expectedInt)
}

6.

Целое число#valueOf

Подобно Integer.parseInt() , мы также можем использовать статический метод Java Integer#valueOf :

@Test
void givenString_whenUsingValueOf_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = Integer.valueOf(stringNum)

assertEquals(intNum, expectedInt)
}

7.

Десятичный формат

И для нашего последнего метода мы можем применить класс DecimalFormat Java :

@Test
void givenString_whenUsingDecimalFormat_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
DecimalFormat decimalFormat = new DecimalFormat("#")
int intNum = decimalFormat. parse(stringNum).intValue()

assertEquals(intNum, expectedInt)
}

8. Обработка исключений​

Таким образом, если преобразование не удается, например, если есть нечисловые символы, будет выдано исключение NumberFormatException . Кроме того, в случае, когда String имеет значение null , будет выброшено исключение NullPointerException :

@Test(expected = NumberFormatException.class)
void givenInvalidString_whenUsingAs_thenThrowNumberFormatException() {
def invalidString = "123a"
invalidString as Integer
}

@Test(expected = NullPointerException.class)
void givenNullString_whenUsingToInteger_thenThrowNullPointerException() {
def invalidString = null
invalidString.toInteger()
}

Чтобы этого не произошло, мы можем использовать метод isInteger :

@Test
void givenString_whenUsingIsInteger_thenCheckIfCorrectValue() {
def invalidString = "123a"
def validString = "123"
def invalidNum = invalidString?. isInteger() ? invalidString as Integer : false
def correctNum = validString?.isInteger() ? validString as Integer : false

assertEquals(false, invalidNum)
assertEquals(123, correctNum)
}

9. Резюме​

В этой короткой статье мы показали несколько эффективных способов переключения с объектов String на объекты Integer в Groovy.

Когда дело доходит до выбора наилучшего метода преобразования типа объекта, все вышеперечисленное одинаково хорошо. Самое главное — избежать ошибок, сначала проверив, может ли значение String в нашем приложении быть нечисловым, пустым или нулевым .

Как обычно, все примеры кода можно найти на GitHub .

Преобразование строки в число (int, float) в Python

В Python вы можете преобразовать строку str в целое число int и число с плавающей запятой float с помощью int() и float () .

Contents

  • Преобразовать строку в int: int()
  • Преобразование строки в число с плавающей запятой: float()
  • Преобразовать двоичные, восьмеричные и шестнадцатеричные строки в int
  • Преобразование строк экспоненциального представления в числа с плавающей запятой

Используйте str() для преобразования целого числа или числа с плавающей запятой в строку.

  • Встроенные функции — str() — Документация по Python 3.11.3

Если вы хотите изменить формат строк или чисел, используйте функцию format() или метод format() str .

  • Форматирование строк и чисел с помощью format() в Python

Вы также можете преобразовать список строк в список чисел.

  • Преобразование списка строк и списка чисел друг в друга в Python

Преобразование строки в

int : int()

int()

преобразует строку в целое число int .

  • Встроенные функции — int() — Документация по Python 3.11.3
 печать (целое число ('100'))
печать (тип (целое ('100')))
№ 100
# <класс 'целое'>
 

источник: str_num_conversion.py

Строка, содержащая . или , вызывает ошибку.

 # print(int('1.23'))
# ValueError: неверный литерал для int() с основанием 10: '1.23'
# print(int('10,000'))
# ValueError: недействительный литерал для int() с основанием 10: '10,000'
 

источник: str_num_conversion.py

Чтобы преобразовать строку, разделенную запятыми, вы можете удалить запятые, заменив их пустой строкой '' , используя replace() .

 print(int('10 000'.replace(',', '')))
# 10000
 

источник: str_num_conversion.py

Дополнительные сведения о replace() см. в следующей статье.

  • Замена строк в Python (replace, translate, re.sub, re.subn)

Преобразование строки в

float : float()

float() преобразует строку в число с плавающей запятой float .

  • Встроенные функции — float() — Документация по Python 3.11.3
 печать (с плавающей запятой ('1,23'))
печать (тип (с плавающей запятой ('1.23')))
# 1.23
# <класс 'плавающий'>
 

источник: str_num_conversion.py

Строка без целой части также может быть преобразована.

 печать (с плавающей запятой ('.23'))
# 0,23
 

источник: str_num_conversion.py

Строка, представляющая целое число, также преобразуется в число с плавающей запятой float .

 печать (с плавающей запятой ('100'))
печать (тип (с плавающей запятой ('100')))
# 100.0
# <класс 'плавающий'>

источник: str_num_conversion.py

Преобразование двоичных, восьмеричных и шестнадцатеричных строк в

int

Если вы передадите базовое число в качестве второго аргумента int() , строка будет рассматриваться как двоичная, восьмеричная или шестнадцатеричная, в зависимости от базы.

 печать (целое число ('100', 2))
печать (целое ('100', 8))
печать (целое ('100', 16))
№ 4
№ 64
№ 256
 

источник: str_num_conversion. py

Если основание не указано, строка будет рассматриваться как десятичная, как показано в предыдущих примерах.

 печать (целое число ('100', 10))
печать (целое ('100'))
№ 100
№ 100
 

источник: str_num_conversion.py

Если база 0 , она преобразуется на основе префикса строки ( 0b , 0o , 0x или 0B 900 04, 0O

, 0X ).

 печать (целое число ('0b100', 0))
печать (целое ('0o100', 0))
печать (целое ('0x100', 0))
№ 4
№ 64
№ 256
 

источник: str_num_conversion.py

Префиксы и шестнадцатеричные буквы могут быть написаны как в верхнем, так и в нижнем регистре.

 печать (целое число ('FF', 16))
печать (целое ('ff', 16))
№ 255
№ 255
печать (целое ('0xFF', 0))
печать (целое ('0XFF', 0))
печать (целое ('0xff', 0))
печать (целое ('0Xff', 0))
№ 255
№ 255
№ 255
№ 255
 

источник: str_num_conversion.py

Дополнительные сведения о взаимном преобразовании двоичных, восьмеричных и шестнадцатеричных строк в int см. в следующей статье.

  • Преобразование двоичных, восьмеричных, десятичных и шестнадцатеричных чисел в Python

Преобразование строк в экспоненциальном представлении в

float

Вы можете преобразовать строку в экспоненциальном представлении в

float с помощью float() .

 печать (с плавающей запятой ('1.23e-4'))
печать (тип (с плавающей запятой ('1.23e-4')))
# 0.000123
# <класс 'плавающий'>
печать (с плавающей запятой ('1.23e4'))
печать (тип (с плавающей запятой ('1.23e4')))
# 12300.0
# <класс 'плавающий'>
 

источник: str_num_conversion.py

Можно использовать как e , так и E .

 печать (с плавающей запятой ('1.23E-4'))
# 0.000123
 

источник: str_num_conversion.py

Преобразование строки в число JavaScript

Преобразование строк в числа

 
FAQ по JavaScript | Часто задаваемые вопросы по номерам | Часто задаваемые вопросы о строках и регулярных выражениях  

Вопрос: Как преобразовать строки в числа в JavaScript?

Ответ: Чтобы преобразовать строку в число, используйте функции JavaScript

  • parseFloat (для преобразования в число с плавающей запятой) или
  • parseInt (для преобразования строки в целое число).

    parseFloat синтаксис: parseFloat ( строка )

    Как это работает:
    Аргумент parseFloat должна быть строкой или строковым выражением. Результат parseFloat число, десятичное представление которого содержится в этой строке (или число, найденное в начале строки). Если строковый аргумент не может быть проанализирован как десятичное число, результат будет NaN ( не числовое значение ).

    Примеры

    (комментарии в каждой строке дают результаты преобразования):

     parseFloat('1,45 кг') // 1,45
    parseFloat('77.3') // 77.3
    parseFloat('077.3') // 77.3
    parseFloat('0x77.3') // 0
    parseFloat('.3') // 0,3
    parseFloat('0.1e6') // 100000
     

    parseInt синтаксис: parseInt( строка [ база ] )

    Как это работает:
    Первый аргумент parseInt должна быть строкой или строковым выражением. Результат, возвращаемый parseInt , целое число , представление которого содержится в строке (или целое число, найденное в начале строки). Второй аргумент base , если он присутствует, указывает основание (основание) числа. чье строковое представление содержится в строка . Аргумент с основанием может быть любым целым числом от 2 до 36.

    Если имеется только один аргумент, числовая база определяется в соответствии с общий синтаксис JavaScript для чисел. Строки, начинающиеся с 0x или -0x анализируются как шестнадцатеричные; строки, которые начинаются с 0 или -0 анализируются как восьмеричные числа. Все остальные строки анализируются как десятичные числа.

    Если строковый аргумент не может быть проанализирован как целое число, результатом будет NaN (или 0 в очень старых браузерах, таких как Internet Explorer 3.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *