Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Существует три опции:
>>> 4 / float(100)
0.04
>>> 4 / 100.0
0.04
, который является тем же поведением как C, C++, Java и т.д., или
>>> from __future__ import division
>>> 4 / 100
0.04
, можно также активировать это поведение путем передачи аргумента -Qnew
к интерпретатору Python:
$ python -Qnew
>>> 4 / 100
0.04
вторая опция будет значением по умолчанию в Python 3.0. Если Вы хотите иметь старое целочисленное деление, необходимо использовать //
оператор.
Редактирование : добавленный раздел [приблизительно 115], благодаря О¤О–О©О¤О–О™ОџОҐ !
Вы наклоняетесь, получают десятичное значение путем деления одного целого числа с другим, Вы будете всегда получать целое число тот путь (результат, усеченный к целому числу). Вам нужно по крайней мере одно значение, чтобы быть десятичным числом.
Необходимо сказать Python использовать значения с плавающей точкой, не целые числа. Можно сделать это просто при помощи десятичной точки сами в исходных данных:
>>> 4/100.0
0.040000000000000001
Вы могли бы хотеть посмотреть на десятичное число Python пакет, также. Это обеспечит хорошие десятичные результаты.
>>> decimal.Decimal('4')/100
Decimal("0.04")
Сделайте один или оба из условий число с плавающей точкой, как так:
4.0/100.0
, С другой стороны, включают функцию, которая будет значением по умолчанию в Python 3.0, 'истинное подразделение', которое делает то, что Вы хотите. Наверху Вашего модуля или сценария, сделайте:
from __future__ import division
Другие ответы предлагают, как получить значение с плавающей точкой. В то время как этот wlil быть близко к тому, что Вы хотите, это не будет точно:
>>> 0.4/100.
0.0040000000000000001
, Если Вы на самом деле хотите десятичное число значение, сделайте это:
>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")
, Который даст Вам объект, который правильно знает, что 4 / 100 в основа 10 "0.04". Числа с плавающей запятой находятся на самом деле в основе 2, т.е. двоичный файл, не десятичный.