Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Форматируем вывод чисел в Java

Встроенные типы данных. Приведение типов

В основу языка Java положено восемь простых типов данных, приведенных в табл. (их также называют элементарными, или примитивными). Термин простые указывает на то, что эти типы данных являются не объектами, а обычными двоичными значениями.

& && | ||!     + - * / + - * / %  
от -128 до 127
код символа по таблице ASCII
от -2 147 483 686 до 2 147 483 686
от -32678 до 32678

 


Инструкция объявления переменных Тип данных, хранимых в переменной, нужно объявлять до 1го использования!    

Литералы


variable name int a, b;

Инструкция объявления, совмещенная с инициализацией переменных, т.е. совмещенная с использованием (объявляем и сразу используем)  
a = 1234;

b = 99;

int c = a + b;


Пример использование примитивных типов данных

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

В любом выражении ЯП используемые в нем типы должны быть согласованы! Ведь если, например, целое число (до 10 значащих цифр), лежащее в одной переменной, скопировать в другую, для которой выделена память, способная хранить 5 значащих цифр, часть знаков потеряется!

Для решения этой проблемы в Java используется 2 вида преобразования типов данных перед их попаданием в CPU, где над данными выполняются операции.

Автоматическое ( или неявное) преобразование типов осуществляется, если в выражении типы совместимы (несовместимы те типы, обработка которых сильно различается, например числовой и логический типы, числовой и текстовый типы) и длина целевого типа (куда сохраняется/write результат выражения) больше длины исходных типов (откуда берутся/read данные). В этом случае происходит автоматическое преобразование с расширением. (смотрите схему в файле «Краткий справочник по JAVA)

Например, в коде

byte n = 30;

int b;

b=n;

такая операция произойдёт без вашего участия автоматически - в последней инструкции (выражении) переменная n сначала будет расширена до int и только потом ее значение будет присвоено переменной b!

 

Явное преобразование типов применяется, если нужно от «большего» типа перейти к «меньшему»

Примеры:

 

float q; q=(float) 2.5;   byte x; x = (byte) 99; int w; w = (int) 48234.5; (c потерей точности)

 

 

 

Задача 2.1. В чем ошибка?

А) byte a=1,b=2,c; Б) float x=2.7;

// Ошибка:

c=a+b;

Задача 2.2 Что будет в переменной с в 1-ом и 2-ом случае? String a = "1234"; String a = "1234"; String b = "99"; int b = 99; String c = a + b; String c = a + b;

 

 


Задача 2.3. Дан пример кода – исправить ошибку

 

public class exmpl1 {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

byte a,b;

a=10;

b=20;

a= a+b;

System. out. print(a);

}

}

Конвертация строк в число (parseXxx()) и обратно (toString())

// конвертируем введенные строки в вещественные числа

a = Double. parseDouble (s1);

b = Double. parseDouble (s2);

c = Double. parseDouble (s3);

Для получения из строки вещественного числа используется метод Double.parseDouble(строка).

Для получения из строки целого числа используется метод

Integer.parseInt(строка).

Аналогичные методы parseXxxx() существуют для других стандартных типов.

 

Основные арифметические операции

 

5/2 =2 5/(-4)= -1 5.0/2=2.5 5/2.0=2.5 операция % дает остаток от деления: по определению n%m = n-(n/m)*m 5%2=1 10%6 = 4 22%8=6 5%(-2) = 1 (-5)%2 =-1 (-5)%3.4 = -1.6  

 

i++ = i+1 i-- = i-1

 

О приоритете операций в Java

Высший приоритет постфиксные операторы []. (параметры) expr++ expr— // f[] System.out func(int d)
унарные операторы ++expr —expr +expr -expr!
создание и преобразование типа new (тип)expr
операторы умножения/деления * / %
операторы сложения/вычитания + -
операторы отношения < > >= <= instanceof
операторы равенства ==!=
логическое И &&
логическое ИЛИ ||
условный оператор expr1? expr2: expr3;
операторы присваивания = += -= *= /= %=

Низший приоритет

Для выражения с несколькими операторами одинакового приоритета операции выполняются «слева-направо», т.е. а + b + c + d = (a + b) + c + d = ((a + b) + c) + d

 

Форматируем вывод чисел в Java

Форматирование чисел выполняет оператор format, который является методом объекты System.out

public class TestFormat {

 

public static void main(String[] args) {

long n = 461012;

System.out.format("%d%n", n); // --> "461012"

System.out.format("%08d%n", n); // --> "00461012"

System.out.format("%+8d%n", n); // --> " +461012"

 

double pi = Math.PI;

 

System.out.format("%f%n", pi); // --> "3.141593"

System.out.format("%.3f%n", pi); // --> "3.142"

 

Задачи.

2.4 Вычислить свой вес на Луне и вывести с точностью 3 знака после запятой.

class Moon {

public static void main(String args[]) {

double earthweight; // weight on earth

double moonweight; // weight on moon

 

earthweight = 55;

 

moonweight = earthweight * 0.17;

 

System.out.println("Мой земной вес = " + earthweight + ", а лунный - " + moonweight);

 

}

}

 

2.5.Пусть переменной w присвоено целое 3-х значное число, например,123.

Вывести его в окно консоли в виде столбца, используя операции % и /:

 

2.6 Пусть число w определено, как в задаче 2.5. Вывести его в окно консоли с обратным порядком цифр. Воспользоваться а) тем, что java операцию + использует как «склейку», если хотя бы одно из слагаемых имеет тип String и б) строковой переменной String probel = ‘ ‘;)

 

 

Дома.

1. Присвоить целочисленной переменной w 3-х значное целое число, и выполнить операции для получения переменной v типа float, целая часть которой равна 0, а дробная составлена из цифр числа w.

(например, w=327. Тогда v = 0.327)

2. Пусть переменной v типа float в программе присвоено значение:

float v = 125.45;

Написать инструкции, позволяющие вывести на печать текст:

«Получено 125 рублей 45 копеек».

3. Даны две целочисленные переменные, со значениями 24 и 35 соответственно.

Написать программу, выводящую число 2354.

4. Вычислить сумму 1 + 1/3 + 1/5 + 1/7 с точностью до 4-х знаков после запятой.

 

Дополнительно

5.Пусть в программе имеется строчка int w =10;

а) используя только сокращенную запись операции * и литерал 10, добавить две инструкции, так, чтобы переменная w получила значение равное 10000.

б) используя только сокращенные записи операций *, /, + и литералы 10 и 100, добавить три инструкции, так, чтобы переменная w получила значение равное 121.

 

6.Проверьте программу. Какое значение нужно присвоить a, чтобы вывелось 5?

int a = 128;

byte b;

b = (byte) a;

System.out.print(b);

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...