2013-04-22 5 views
-1

Эй, ребята, у меня есть char, и я хочу добавить к нему целое/двойное. Символ должен быть подписанным символом, поэтому я не могу просто сделать его int.Добавить значения в char в c?

char var = -55; 
printf("Char is %d, add, char is now: %d\n", var, var+2); 

Этот код работает, но как только я хочу, чтобы добавить часть или что-то ...

printf("Char is %d, add, char is now: %d\n", var, var+2/3*2); 

Это не добавляет вообще. Любые идеи почему? Наверное, что-то общее с округлением и еще много чего.

Спасибо.

+7

2/3 равен нулю. – MYMNeo

+0

Хм? Должен ли я сначала бросать 2/3 в двойную? РЕДАКТИРОВАТЬ - Ха-ха, забыл основные БОДЫ .. так что да 2/3 = 0, а затем умножить на 2 = 0. -.-. Благодаря! – Travv92

+1

Явным образом объявляю 'var' как' signed char', или вы рискуете закончить использование 'unsigned char', когда используете другой компилятор. –

ответ

1

Try делает

printf("Char is %d, add, char is now: %d\n", var, (int)(var+(2/(double)3)*2)); 
+0

Спасибо, это сработало! – Travv92

2

Попробуйте

printf("Char is %d, add, char is now: %d\n", var, (int)(var+2/3.0*2));