Как я получаю десятичное значение при использовании оператора деления в Python?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

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 ");
        }
    }
}
62
задан Primoz 30 October 2017 в 00:09
поделиться

8 ответов

Существует три опции:

>>> 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], благодаря О¤О–О©О¤О–О™ОџОҐ !

131
ответ дан Community 24 November 2019 в 16:36
поделиться

Вы наклоняетесь, получают десятичное значение путем деления одного целого числа с другим, Вы будете всегда получать целое число тот путь (результат, усеченный к целому числу). Вам нужно по крайней мере одно значение, чтобы быть десятичным числом.

0
ответ дан Vasil 24 November 2019 в 16:36
поделиться

Простой маршрут 4 / 100.0

или

4.0 / 100

1
ответ дан torial 24 November 2019 в 16:36
поделиться

Необходимо сказать Python использовать значения с плавающей точкой, не целые числа. Можно сделать это просто при помощи десятичной точки сами в исходных данных:

>>> 4/100.0
0.040000000000000001
3
ответ дан moonshadow 24 November 2019 в 16:36
поделиться

Вы могли бы хотеть посмотреть на десятичное число Python пакет, также. Это обеспечит хорошие десятичные результаты.

>>> decimal.Decimal('4')/100
Decimal("0.04")
4
ответ дан S.Lott 24 November 2019 в 16:36
поделиться

Сделайте один или оба из условий число с плавающей точкой, как так:

4.0/100.0

, С другой стороны, включают функцию, которая будет значением по умолчанию в Python 3.0, 'истинное подразделение', которое делает то, что Вы хотите. Наверху Вашего модуля или сценария, сделайте:

from __future__ import division
7
ответ дан Thomas Wouters 24 November 2019 в 16:36
поделиться

Другие ответы предлагают, как получить значение с плавающей точкой. В то время как этот wlil быть близко к тому, что Вы хотите, это не будет точно:

>>> 0.4/100.
0.0040000000000000001

, Если Вы на самом деле хотите десятичное число значение, сделайте это:

>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")

, Который даст Вам объект, который правильно знает, что 4 / 100 в основа 10 "0.04". Числа с плавающей запятой находятся на самом деле в основе 2, т.е. двоичный файл, не десятичный.

24
ответ дан Glyph 24 November 2019 в 16:36
поделиться

Попробуйте 4.0/100

1
ответ дан Martin Cote 24 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: