Перевод из int -> double
В итоге получается, что count = 40 (второе сообщение выведет 40), а мне нужно 41.
Тут что-то с округлением мудрить надо -> для начинающего это еще та беда — помогите
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Перевод int и double в char*
Возникла следующая проблема. Нужно сделать: //Реализовать класс var — «Универсальная переменная».
Перевод из wchar_t* в int (double)
Как перевести из wchar_t* в int (double) без учета впереди стоящих нулей? то есть у меня есть.
Перевод из int в double не работает
фраза double x_n = (int)x; у меня не работает как написать правильно?
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
Math.round например
645 / 310 / 34
Регистрация: 31.05.2019
Сообщений: 2,335
Причем когда я ввожу 4.11 — то выводит count 41 — То, что мне нужно
Добавлено через 29 секунд
Сообщение от xoraxax 
Math.round например
Можете непосредственно показать на примере — мне очень тяжело дается это округление все (да и этот язык то вообщем)
364 / 251 / 113
Регистрация: 07.10.2017
Сообщений: 1,330

Сообщение было отмечено Sneykas как решение
Решение
1 2 3 4 5 6 7 8
public static void main(String[] args) { double h = 0.1; double end = 4.1; System.out.println("qwertty:" + end); int count = (int) Math.round(end/h); System.out.println("qwerty : " + count); }
Сообщение от Sneykas 
Причем когда я ввожу 4.11 — то выводит count 41 — То, что мне нужно
Потому что при больших количествах операций с вещественными числами, появляется погрешность
![]()
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220

Сообщение было отмечено Sneykas как решение
Решение
count = (int) Math.round(end/h)
645 / 310 / 34
Регистрация: 31.05.2019
Сообщений: 2,335
Спасибо за помощь!
2495 / 1944 / 486
Регистрация: 17.02.2014
Сообщений: 9,239

Сообщение было отмечено Sneykas как решение
Решение
Sneykas,
1 2 3
double a = 4.1; double b = 0.1; System.out.println( Double.valueOf(Math.round(a/b)).intValue());
![]()
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
и зачем боксить туда сюда? бессмыслица же
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Перевод значений int и double в string
Как задавать значения в TextBox1: const double scalefactor = 1.2; const int.
Перевод значений String в double, int
Как можно сделать, чтобы изменять значения scalefactor, min_neighbors и fd в TextBox. Помогите.

Перевод массива типа int[] в double[]
Подскажите как перевести тип массива в другой тип

Перевод из double в int (ошибка при переводе)
При переводе некого получившегося числа из double в int, выводится неправильное число. Не могу.
Преобразование типов в Java
Преобразование типов — это тема, которая может показаться сложной начинающим программировать на Java. Однако, заверим Вас, на самом деле всё просто. Главное понять по каким законам происходит взаимодействие между переменными и помнить об этом при написании программ. Итак, давайте разбираться.
В Java существует 2 типа преобразований — картинка Вам в помощь:

Напомним, что вся «Вселенная Java» состоит из:
- примитивных типов (byte, short, int, long, char, float, double, boolean)
- объектов
В данной статье мы:
- рассмотрим преобразование типов для примитивных типов переменных
- преобразование объектов (String, Scanner и др.) в этой статье не рассматривается, поскольку с объектами происходит отдельная «магия» — это тема для отдельной статьи.
Автоматическое преобразование
Ну, что ж, давайте попробуем разобраться что такое «автоматическое преобразование».
Помните, когда мы рассматривали типы переменных (в статье «Переменные в Java. Создание переменной»), мы говорили, что переменная — это некоторый «контейнер» , в котором может храниться значение для дальнейшего использования в программе. Также мы говорили о том, что каждый тип переменной имеет свой диапазон допустимых значений и объем занимаемой памяти. Вот она табличка, где это все было расписано:

Так вот, к чему мы, собственно говоря, клоним. К тому, что совсем не просто так Вам давались диапазоны допустимых значений и объем занимаемой памяти
Давайте, сравним, например:
1. byte и short. byte имеет меньший диапазон допустимых значений, чем short. То есть byte это как бы коробочка поменьше, а short — это коробочка побольше. И значит, мы можем byte вложить в short.
2. byte и int . byte имеет меньший диапазон допустимых значений, чем int. То есть byte это как бы коробочка поменьше, а int — это коробочка побольше. И значит, мы можем byte вложить в int.
3. int и long. int имеет меньший диапазон допустимых значений, чем long. То есть int это как бы коробочка поменьше, а long — это коробочка побольше. И значит, мы можем int вложить в long.

Это и есть пример автоматического преобразования. Это можно схематически изобразить в виде вот такой картинки:

Давайте рассмотрим как это работает на практике.
Пример №1
Код №1 — если Вы запустите это код на своем компьютере, в консоли будет выведено число 15
Разобрать строку в число с плавающей запятой или int в Java
В этом посте мы обсудим, как преобразовать строку в число double, float или int в Java.
1. Использование Double.parseDouble() метод
Стандартное решение для анализа строки для получения соответствующего двойного значения использует метод Double.parseDouble() метод.
public class Main
public static void main ( String [ ] args ) <
String s = "1.1" ;
double d = Double . parseDouble ( s ) ;
System . out . println ( d ) ;
The Double.parseDouble() броски метода NumberFormatException если строка не содержит анализируемого двойника. Чтобы избежать внезапного завершения программы, заключите свой код в блок try-catch.
public class Main
public static void main ( String [ ] args ) <
String s = "1.1" ;
double d = Double . parseDouble ( s ) ;
System . out . println ( d ) ; // 1.1
> catch ( NumberFormatException e ) <
// строка не может быть проанализирована как двойная
Обратите внимание, вы не можете анализировать такие строки, как 1.1 с использованием Integer.parseInt() метод. Чтобы получить целочисленное значение, вы можете привести результирующее двойное значение.
public class Main
public static void main ( String [ ] args ) <
String s = "1.1" ;
int i = ( int ) Double . parseDouble ( s ) ;
System . out . println ( i ) ; // 1
> catch ( NumberFormatException e ) <
// строка не может быть проанализирована как двойная
2. Использование Float.parseFloat() метод
В качестве альтернативы вы можете использовать Float.parseFloat() метод для синтаксического анализа строки в число с плавающей запятой.
public class Main
public static void main ( String [ ] args ) <
String s = "1.1" ;
float f = Float . parseFloat ( s ) ;
System . out . println ( f ) ; // 1.1
> catch ( NumberFormatException e ) <
// строка не может быть преобразована в плавающую
Чтобы получить целочисленное значение, приведите результирующее значение с плавающей запятой, как обсуждалось ранее.
public class Main
public static void main ( String [ ] args ) <
String s = "1.1" ;
int i = ( int ) Float . parseFloat ( s ) ;
System . out . println ( i ) ; // 1
> catch ( NumberFormatException e ) <
// строка не может быть преобразована в плавающую
3. Использование Integer.parseInt() метод
Чтобы получить целочисленное значение, представленное строкой в десятичном виде, вы можете использовать Integer.parseInt() метод, который анализирует строку как десятичное целое число со знаком.
public class Main
public static void main ( String [ ] args ) <
String s = "1" ;
int i = Integer . parseInt ( s ) ;
System . out . println ( i ) ; // 1
> catch ( NumberFormatException e ) <
// строка не может быть преобразована в целое число
4. Использование Number class
Чтобы проанализировать текст с начала заданной строки для получения числа, вы можете использовать метод parse() метод NumberFormat учебный класс. Этот метод может не использовать всю строку и выдает ParseException если строка начинается с любого неразборчивого нечислового символа.
The NumberFormat.parse() метод возвращает Number экземпляр класса, который предлагает intValue() , longValue() , floatValue() , doubleValue() , byteValue() , а также shortValue() методы для получения значения указанного числа в качестве соответствующего типа метода.
Преобразование (приведение)типов
Java объектно- ориентированный язык программирования, все что в java имеется представлено объектами. В java также имеются восемь примитивных типов, которые не являются объектами. Для этих типов существует соответствующие классы оболочки, предназначенные для создания объектов, преобразования итд, при работе с классами. Сейчас мы рассмотрим подробно преобразование и привидение типов.
(Integer, Double, Short, Byte,Long, Float, BigDecimal, BigInteger) Все эти классы имеют статические методы к примеру преобразования типа String к соответствующему типу.
Преобразовать String в int.
String str = «1» ;
int i = Integer . parseInt ( str ) ;
Преобразовать String в double.
Преобразование типа String в double
String str = «1» ;
double d = Double . parseDouble ( str ) ;
Преобразовать String в short.
Преобразовать String в short.
String str = «1» ;
short s = Short . parseShort ( str ) ;
Преобразовать String в byte.
Преобразовать String в Byte.
String str = «1» ;
byte b = Byte . parseByte ( str ) ;
Преобразовать String в long.
Преобразовать String в long.
String str = «1» ;
long l = Long . parseLong ( str ) ;
Преобразовать String в float.
Преобразовать String в int.
String str = «1» ;
float f = Float . parseFloat ( str ) ;
Преобразовать String и другие типы в char.
Это операция не возможна, так как в char хранится лишь один символ, и в него не возможно впихнуть строку или число. Однако, можно строку поместить в массив символов char, или разбить строку на символы и присвоить в переменную char по индексу символ из строки.
String str = «123» ;
char [ ] cs = str . toCharArray ( ) ; //пример с массивом
char c = str . charAt ( 0 ) ; //присваиваем переменной с символ 1
Не много отойдем от темы, если вы помните то в java строки можно было соединять(конкатенировать), используя оператор + листинг 1.1.
Пример объединения строк типа String
String a = «nookery» ;
String b = «.ru» ;
Однако, использование оператора «+» в конкатенации строк внутри java генерирует другой код в место a=a+b;листинг 1.2
Пример объединения строк типа String
String a = «nookery» ;
String b = «.ru» ;
a = new StringBuilder ( ) . append ( a ) . append ( b ) . toString ( ) ;
Но так было не всегда, использования оператора + в конкатенации строк стало возможным только с java 5.0
Теперь мы рассмотрим всевозможные приведения типа int в другие типы, в java
Преобразовать int в double.
Явного приведения int к double не имеет смысла, так как мы знаем, что диапазон чисел int в легкую вместится в double, достаточно использовать оператор присвоения ==.
Преобразовать int в short.
Преобразовать int в short.
short s = ( short ) i ;
Преобразовать int в byte.
Преобразовать int в Byte.
byte b = ( byte ) i ;
Преобразовать int в long.
Явного приведения int к long не имеет смысла, так как мы знаем, что диапазон чисел int в легкую вместится в long, достаточно использовать оператор присвоения ==.
Преобразовать int в float.
Явного приведения int к float как и в случаи double не имеет смысла, так как мы знаем, что диапазон чисел int в легкую вместится в float, достаточно использовать оператор присвоения ==.
Преобразовать int в String.
