Подтвердить что ты не робот

Как преобразовать строку в целое число в UNIX

У меня есть d1="11" и d2="07". Я хочу преобразовать d1 и d2 в целые числа и выполнить d1-d2. Как это сделать в UNIX?

d1 - d2 в настоящее время возвращает "11-07" в качестве результата для меня.

4b9b3361

Ответ 1

Стандартное решение:

 expr $d1 - $d2

Вы также можете сделать:

echo $(( d1 - d2 ))

но будьте осторожны, что это будет обрабатывать 07 как восьмеричное число! (поэтому 07 совпадает с 7, но 010 отличается от 10).

Ответ 2

Любой из них будет работать из командной строки оболочки. bc, вероятно, является вашим самым прямым решением.

Используя bc:

$ echo "$d1 - $d2" | bc

Использование awk:

$ echo $d1 $d2 | awk '{print $1 - $2}'

Использование perl:

$ perl -E "say $d1 - $d2"

Использование Python:

$ python -c "print $d1 - $d2"

все возвращаются

4

Ответ 3

let d=d1-d2;echo $d;

Это должно помочь.

Ответ 4

Используйте это:

#include <stdlib.h>
#include <string.h>

int main()
{
    const char *d1 = "11";
    int d1int = atoi(d1);
    printf("d1 = %d\n", d1);
    return 0;
}

и др.