Arduino основная математика не работает [дубликат]

A NullReferenceException бросается, когда мы пытаемся получить доступ к свойствам нулевого объекта или когда значение строки становится пустым, и мы пытаемся получить доступ к строковым методам.

Например:

  1. При использовании метода string пустой строки:
    string str = string.Empty;
    str.ToLower(); // throw null reference exception
    
  2. Когда свойство нулевого объекта доступно:
    Public Class Person {
        public string Name { get; set; }
    }
    Person objPerson;
    objPerson.Name  /// throw Null refernce Exception 
    
29
задан Psirus 23 May 2011 в 19:06
поделиться

5 ответов

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

 double f = 3.0 / 5;
45
ответ дан Neil Butterworth 4 September 2018 в 08:14
поделиться

Попробуйте поставить .0 после одного из делителей. Это преобразует их в литералы с плавающей запятой.

5
ответ дан Diego Sevilla 4 September 2018 в 08:14
поделиться

Вы используете целые числа. Вы можете многое сделать, чтобы ваши константы были такими же, как и leftaroundabout, но это не очень хорошо. Трудно читать и запутывать. Если вы хотите, чтобы 3 и 5 сделали их 3.0 и 5.0. Каждый будет знать, что вы имеете в виду, если они вынуждены читать ваш код. Большая часть того, что он / она заявляет, действительно требует, чтобы вы знали C / C ++ и как float - хранилище для создания голов или хвостов.

2
ответ дан Joe Tyman 4 September 2018 в 08:14
поделиться

Не нужно [] быть .0, вы также можете делать 3./5 или 3/5. или 3e+0 / 5 или 3 / 5e-0 или 0xCp-2 / 5 или ... там только должен быть включенным индикатором, чтобы компилятор знал, что он должен выполнять деление как плавающую точку.

Другая возможность: double f=double(3)/5.

Или просто используйте double f=.6, что тоже делает трюк ...

17
ответ дан leftaroundabout 4 September 2018 в 08:14
поделиться

попробуйте следующее:

double f = 3.0/5.0;

это должно устранить вашу проблему

9
ответ дан sergio 4 September 2018 в 08:14
поделиться
Другие вопросы по тегам:

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