- Преобразование String в Double в Android
- Java Convert String to Double examples
- 1. Java Convert String to Double using Double.parseDouble(String)
- Example 1: Java Program to convert String to double using parseDouble(String)
- 2. Java Convert String to Double using Double.valueOf(String)
- Example 2: Java Program to convert String to double using valueOf(String)
- 3. Java Convert String to double using the constructor of Double class
- Example 3: Java Program to convert String to double using the constructor of Double class
- Java Convert String to double
- Core Java Tutorial
- Java Convert String to Double
- Double.parseDouble()
- Double.valueOf()
- new Double(String s)
- DecimalFormat parse()
- преобразовать String в Double в EditText
- 4 ответа
- Метод 1: Использование Double.parseDouble
- Метод 2: Использование Double.valueOf
- Метод 3: конструктор класса Double
- Double. Parse Метод
- Определение
- Перегрузки
- Комментарии
- Parse(String, NumberStyles, IFormatProvider)
- Параметры
- Возвращаемое значение
- Исключения
- Примеры
- Комментарии
Преобразование String в Double в Android
Попытка получить двойные значения из EditText и манипулировать ими, прежде чем передавать их другому намерению. Не используйте примитивный тип данных, поэтому я могу использовать методы toString.
Проблема заключается в том, когда я включаю белок = Double.valueOf (p) .doubleValue (); , Команда программы немедленно закрывается, не оставляя никакой информации в logcat.If я комментирую их и устанавливаю некоторые фиктивные данные, такие как белок = 1.0; Он работает без проблем. То же самое происходит с примитивными типами данных и синтаксическим разбором. Этот код отлично работает с фиктивными данными в обычной Java. Что я делаю не так?
Я бы сделал это так:
EDIT: «программная сила немедленно закрывается, не оставляя информации в логарифме»
Я не знаю, что бой не оставлял информацию в выводе logcat, но принудительное закрытие обычно означает, что есть неперехваченное исключение – например, исключение NumberFormatException.
Кажется, вы назначили Double object в собственное поле двойного значения. Это действительно компилируется?
Double.valueOf () создает объект Double, поэтому .doubleValue () не требуется.
Если вы хотите собственное двойное поле, вам нужно определить поле как двойное, а затем использовать .doubleValue ()
Как насчет использования конструктора Double (String)? Так,
Не знаю, почему это будет по-другому, но может стоить того.
У меня аналогичная проблема. Для правильного форматирования текстового содержимого EditText для двойного значения я использую этот код:
Это не зависит от текущего локали телефона и возвращает правильное двойное значение.
Источник
Java Convert String to Double examples
By Chaitanya Singh | Filed Under: Java Conversion
In this guide we will see how to convert String to Double in Java. There are three ways to convert String to double.
1. Java – Convert String to Double using Double.parseDouble(String) method
2. Convert String to Double in Java using Double.valueOf(String)
3. Java Convert String to double using the constructor of Double class – The constructor Double(String) is deprecated since Java version 9
1. Java Convert String to Double using Double.parseDouble(String)
This method returns the double representation of the passed String argument. This method throws NullPointerException , if the specified String str is null and NumberFormatException – if the string format is not valid. For example, if the string is “122.20ab” this method would throw NumberFormatException.
The value of variable dnum of double type would be 122.202 after conversion.
Lets see the complete example of the conversion using parseDouble(String) method.
Example 1: Java Program to convert String to double using parseDouble(String)
Output:
2. Java Convert String to Double using Double.valueOf(String)
The valueOf() method of Double wrapper class in Java, works similar to the parseDouble() method that we have seen in the above java example.
The value of dnum would be 122.111 after conversion
Lets see the complete example of conversion using Double.valueOf(String) method.
Example 2: Java Program to convert String to double using valueOf(String)
Output:
3. Java Convert String to double using the constructor of Double class
Note: The constructor Double(String) is deprecated since Java version 9
Double class has a constructor which parses the String argument that we pass in the constructor, and returns an equivalent double value.
Using this constructor we can create a new object of the Double class by passing the String that we want to convert.
Example 3: Java Program to convert String to double using the constructor of Double class
In this example we are creating an object of Double class to convert the String value to double value.
Источник
Java Convert String to double
Core Java Tutorial
Java String to double conversion can be done by many ways. Today we will look into some common ways to convert java string to double primitive data type or Double object. Note that since java supports autoboxing, double primitive type and Double object can be used interchangeably without any issues.
Java Convert String to Double
Let’s look at all the different ways to convert string to double in java.
Double.parseDouble()
We can parse String to double using parseDouble() method. String can start with “-” to denote negative number or “+” to denote positive number. Also any trailing 0s are removed from the double value. We can also have “d” as identifier that string is a double value. This method returns double primitive type. Below code snippet shows how to convert string to double using Double.parseDouble() method.
Double.valueOf()
This method works almost similar as parseDouble() method, except that it returns Double object. Let’s see how to use this method to convert String to Double object.
new Double(String s)
We can convert String to Double object through it’s constructor too. Also if we want double primitive type, then we can use doubleValue() method on it. Note that this constructor has been deprecated in Java 9, preferred approach is to use parseDouble() or valueOf() methods.
DecimalFormat parse()
This is useful to parse formatted string to double. For example, if String is “1,11,111.23d” then we can use DecimalFormat to parse this string to double as:
Note that parse() method returns instance of Number , so we are calling doubleValue() to get the double primitive type from it. Also this method throw ParseException if the string is not properly formatted.
That’s all for converting string to double in java program.
Источник
преобразовать String в Double в EditText
Я делаю андроид приложение. Пользователь вводит 11-15 цифр в android EditText , так как мне нужно проделать некоторую математическую работу над этим нет, мне нужно преобразовать его в double, но пока это не работает
Как я могу получить ту же строку после разбора ее на двойной
Пока это мой код:
4 ответа
Чтобы отформатировать Double , вы используете служебный класс NumberFormat .
Вы также можете форматировать десятичные значения с поддержкой округления, например
Вывод:
Метод 1: Использование Double.parseDouble
public static double parseDouble(String str) throws NumberFormatException Он возвращает значение типа double, представленное строковым аргументом, и выдает следующие исключения:
NullPointerException — если указанное String str равно нулю.
NumberFormatException — если формат строки недопустим. Например, Если строка равна 122.20ab , это исключение будет выдано.
Двойное значение переменной var после преобразования будет 122.202 .
Метод 2: Использование Double.valueOf
Значение var3 будет 122.202 .
Метод 3: конструктор класса Double
Класс Double имеет конструктор, который анализирует переданный аргумент String и возвращает значение типа double.
Создает вновь выделенный объект Double , который представляет значение с плавающей запятой типа double, представленное строкой.
Дополнительно вот как получить текст из EditText :
На этот вопрос ответят несколько раз. Этот ответ предлагает несколько полезных подходов.
Источник
Double. Parse Метод
Определение
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует строковое представление числа в эквивалентное ему число двойной точности с плавающей запятой.
Перегрузки
Преобразует строковое представление числа указанного стиля, выраженное в формате, соответствующем определенному языку и региональным параметрам, в эквивалентное ему число двойной точности с плавающей запятой.
Преобразует строковое представление числа, выраженное в заданном формате, связанном с языком и региональными параметрами, в эквивалентное ему число двойной точности с плавающей запятой.
Преобразует диапазон символов, содержащий строковое представление числа в указанном стиле и с использованием формата, соответствующего данному языку и региональным параметрам, в эквивалентное ему число с плавающей запятой двойной точности.
Преобразует строковое представление числа в эквивалентное ему число двойной точности с плавающей запятой.
Преобразует строковое представление числа указанного стиля в эквивалентное ему число двойной точности с плавающей запятой.
Комментарии
В .NET Core 3,0 и более поздних версиях значения, которые слишком велики для представления, округляются до PositiveInfinity или в NegativeInfinity соответствии с требованиями спецификации IEEE 754. в предыдущих версиях, включая платформа .NET Framework, синтаксический анализ значения, которое слишком велико для представления результата сбоя.
Parse(String, NumberStyles, IFormatProvider)
Преобразует строковое представление числа указанного стиля, выраженное в формате, соответствующем определенному языку и региональным параметрам, в эквивалентное ему число двойной точности с плавающей запятой.
Параметры
Строка, содержащая преобразуемое число.
Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут присутствовать в параметре s . Обычно указывается значение Float в сочетании со значением AllowThousands.
Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.
Возвращаемое значение
Число с плавающей запятой двойной точности, которое эквивалентно числовому значению или символу, заданному параметром s .
Исключения
s имеет значение null .
Параметр s не представляет числовое значение.
style не является значением NumberStyles.
-или- style является значением AllowHexSpecifier.
.NET Framework и .NET Core 2.2 и более ранние версии: s представляет число меньше MinValue или больше MaxValue.
Примеры
В следующем примере показано использование Parse(String, NumberStyles, IFormatProvider) метода для назначения нескольких строковых представлений значений температуры Temperature объекту.
Комментарии
В .NET Core 3,0 и более поздних версиях значения, которые слишком велики для представления, округляются до PositiveInfinity или в NegativeInfinity соответствии с требованиями спецификации IEEE 754. в предыдущих версиях, включая платформа .NET Framework, синтаксический анализ значения, которое слишком велико для представления результата сбоя.
style Параметр определяет элементы стиля (такие как пробелы, разделители групп разрядов и символы валют), допустимые в s параметре для выполнения операции синтаксического анализа. Он должен представлять собой сочетание битовых флагов из NumberStyles перечисления. Следующие NumberStyles члены не поддерживаются:
s Параметр может содержать NumberFormatInfo.PositiveInfinitySymbol , NumberFormatInfo.NegativeInfinitySymbol или NumberFormatInfo.NaNSymbol для языка и региональных параметров, заданных параметром provider . В зависимости от значения style , оно также может принимать форму:
[WS] [ $ ] [знак] [цифры целой и дробной части],целая-цифры[. [ дробные цифры]] [E [знак]экспоненциальные цифры] [WS]
Элементы, заключенные в квадратные скобки ([и]), являются необязательными. Каждый из элементов описан в таблице ниже.
Элемент | Описание |
---|---|
ws | Последовательность пробельных символов. Пробел может присутствовать в начале s style , если включает NumberStyles.AllowLeadingWhite флаг, и может находиться в конце, s Если style включает NumberStyles.AllowTrailingWhite флаг. |
$ | Символ валюты, зависящий от языка и региональных параметров. Его расположение в строке определяется NumberFormatInfo.CurrencyNegativePattern NumberFormatInfo.CurrencyPositivePattern свойствами и текущего языка и региональных параметров. Символ валюты текущего языка и региональных параметров может отображаться в, s Если style включает NumberStyles.AllowCurrencySymbol флаг. |
sign | Знак отрицательного знака (-) или знак плюс (+). Знак может присутствовать в начале s style , если включает NumberStyles.AllowLeadingSign флаг, и может находиться в конце, s Если style включает NumberStyles.AllowTrailingSign флаг. Круглые скобки могут использоваться в s , чтобы указать отрицательное значение, если style включает NumberStyles.AllowParentheses флаг. |
целые числа | Последовательность цифр от 0 до 9, указывающих целую часть числа. Элемент с целочисленными цифрами может отсутствовать, если строка содержит элемент дробной разрядности . |
, | Разделитель групп, зависящий от языка и региональных параметров. Символ разделителя групп текущего языка и региональных параметров может отображаться в, s Если style включает NumberStyles.AllowThousands флаг |
. | Символ десятичной запятой, зависящий от языка и региональных параметров. Символ десятичной запятой текущего языка и региональных параметров может присутствовать в, s Если style включает NumberStyles.AllowDecimalPoint флаг. |
Дробные разряды | Последовательность цифр от 0 до 9, которая указывает дробную часть числа. Дробные цифры могут присутствовать s в style , если включает NumberStyles.AllowDecimalPoint флаг. |
E | Символ «e» или «E», указывающий, что значение представлено в экспоненциальной (экспоненциальной) нотации. s Параметр может представлять число в экспоненциальной нотации style , если включает NumberStyles.AllowExponent флаг. |
экспоненциальные цифры | Последовательность цифр от 0 до 9, указывающая показатель степени. |
Все завершающие символы NUL (U + 0000) в s игнорируются операцией синтаксического анализа, независимо от значения style аргумента.
Строка с цифрами (которая соответствует NumberStyles.None стилю) всегда анализируется успешно, если она находится в диапазоне Double типа. Остальные элементы System.Globalization.NumberStyles управляют элементами управления, которые могут присутствовать, но не обязательно должны присутствовать во входной строке. В следующей таблице показано, как отдельные NumberStyles Флаги влияют на элементы, которые могут присутствовать в s .
Значение NumberStyles | Элементы, разрешенные в s в дополнение к цифрам |
---|---|
None | Только элемент с целыми цифрами . |
AllowDecimalPoint | Элементы десятичной запятой (.) и дробные разряды . |
AllowExponent | Символ «e» или «E», который указывает на экспоненциальную нотацию. Этот флаг сам по себе поддерживает значения в виде цифр E цифр. Дополнительные флаги необходимы для успешного анализа строк с такими элементами, как знаки плюса или минуса и символы десятичной запятой. |
AllowLeadingWhite | Элемент WS в начале s . |
AllowTrailingWhite | Элемент WS в конце s . |
AllowLeadingSign | Элемент Sign в начале s . |
AllowTrailingSign | Элемент Sign в конце s . |
AllowParentheses | Элемент Sign в виде круглых скобок, охватывающих числовое значение. |
AllowThousands | Элемент разделителя тысяч (,). |
AllowCurrencySymbol | Элемент Currency ($). |
Currency | Все элементы. Однако s не может представлять шестнадцатеричное число или число в экспоненциальной нотации. |
Float | Элемент WS в начале или конце s , знак в начале s и символ десятичной запятой (.). s Параметр также может использовать экспоненциальную нотацию. |
Number | ws Элементы, sign , тысячные разделители (,) и десятичные точки (.). |
Any | Все элементы. Однако s не может представлять шестнадцатеричное число. |
provider Параметр — это IFormatProvider реализация, метод которой GetFormat возвращает NumberFormatInfo объект, предоставляющий сведения о языке и региональных параметрах, используемые для интерпретации формата s . Как правило, это NumberFormatInfo объект или CultureInfo . Если provider параметр имеет значение null или NumberFormatInfo не может быть получен, используются сведения о форматировании для текущего языка и региональных параметров системы.
Обычно, если передать Double.Parse методу строку, созданную путем вызова Double.ToString метода, Double возвращается исходное значение. Однако из-за потери точности значения могут не совпадать. Кроме того, попытка выполнить синтаксический анализ строкового представления MinValue или Double.MaxValue отказывается от приема-передачи. в платформа .NET Framework и .net Core 2,2 и предыдущих версиях он создает исключение OverflowException . В .NET Core 3,0 и более поздних версиях он возвращает Double.NegativeInfinity при попытке выполнить синтаксический анализ MinValue или Double.PositiveInfinity при попытке выполнить синтаксический анализ MaxValue . Ниже приведен пример.
в платформа .NET Framework и .net Core 2,2 и более ранних версиях, если s выходит за пределы диапазона Double типа данных, Parse(String, NumberStyles, IFormatProvider) метод создает исключение OverflowException .
В .NET Core 3,0 и более поздних версиях исключение не возникает, когда выходит s за пределы диапазона Double типа данных. В большинстве случаев Parse(String, NumberStyles, IFormatProvider) метод возвратит значение Double.PositiveInfinity или Double.NegativeInfinity . Однако существует небольшой набор значений, которые считаются ближе к максимальному или минимальному значению, Double чем положительная или отрицательная бесконечность. В этих случаях метод возвращает Double.MaxValue или Double.MinValue .
Если в s параметре во время операции синтаксического анализа обнаруживается разделитель, а применимые разделители денежных единиц или чисел в группах совпадают, то операция синтаксического анализа предполагает, что разделитель является десятичным разделителем, а не разделителем групп. Дополнительные сведения о разделителях см CurrencyDecimalSeparator . в разделе,, NumberDecimalSeparator CurrencyGroupSeparator и NumberGroupSeparator .
Источник