Можно преобразовать числовое значение или значение даты и времени в значение 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В этом кратком руководстве мы покажем различные способы преобразования из строки в целое число в Groovy.
asПервый метод, который мы можем использовать для преобразования, — это ключевое слово as , которое аналогично вызову метода asType() класса « :
@Test
void givenString_whenUsingAsInteger_thenConvertToInteger() {
def stringNum = "123"
Integer expectedInteger = 123
Integer integerNum = stringNum as IntegerassertEquals(integerNum, expectedInteger)
}
Как и выше, мы можем использовать int :
@Test
void givenString_whenUsingAsInt_thenConvertToInt() {
def stringNum = "123"
int expectedInt = 123
int intNum = stringNum as intassertEquals(intNum, expectedInt)
}
целое числоДругой метод — из расширения Groovy JDK для java.lang.CharSequence :
@Test
void givenString_whenUsingToInteger_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = stringNum.toInteger()assertEquals(intNum, expectedInt)
}
Целое#parseIntТретий способ — использовать статический метод Java Integer.parseInt() :
@Test
void givenString_whenUsingParseInt_thenConvertToInteger() {
def stringNum = "123"
int expectedInt = 123
int intNum = Integer.parseInt(stringNum)assertEquals(intNum, expectedInt)
}
Целое#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)
}
Целое число#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)
}
Десятичный форматИ для нашего последнего метода мы можем применить класс 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)
}
Таким образом, если преобразование не удается, например, если есть нечисловые символы, будет выдано исключение 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 : falseassertEquals(false, invalidNum)
assertEquals(123, correctNum)
}
В этой короткой статье мы показали несколько эффективных способов переключения с объектов String на объекты Integer в Groovy.
Когда дело доходит до выбора наилучшего метода преобразования типа объекта, все вышеперечисленное одинаково хорошо. Самое главное — избежать ошибок, сначала проверив, может ли значение String в нашем приложении быть нечисловым, пустым или нулевым .
Как обычно, все примеры кода можно найти на GitHub .
В Python вы можете преобразовать строку str в целое число int и число с плавающей запятой float с помощью int() и float () .
Используйте str() для преобразования целого числа или числа с плавающей запятой в строку.
Если вы хотите изменить формат строк или чисел, используйте функцию format() или метод format() str .
Вы также можете преобразовать список строк в список чисел.
int : int() int()
int .
печать (целое число ('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() см. в следующей статье.
float : float() float() преобразует строку в число с плавающей запятой float .
печать (с плавающей запятой ('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 см.
в следующей статье.
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? Ответ: Чтобы преобразовать строку в число, используйте функции JavaScript parseFloat (для преобразования в число с плавающей запятой) или parseInt (для преобразования строки в целое число).![]() parseFloat синтаксис: Как это работает: Примеры 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 синтаксис: Как это работает: Если имеется только один аргумент, числовая база определяется в соответствии с
общий синтаксис JavaScript для чисел. Строки, начинающиеся с Если строковый аргумент не может быть проанализирован как целое число,
результатом будет |