реклама на сайте
подробности

 
 
> си float - выделить значения после запятой?
andron86
сообщение Mar 30 2012, 06:29
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Как в си вывести/выделить значения после запятой (float) и представить в десятичной форме с округлением до 2 знаков? smile3046.gif
Есть ли что готовое, а то неохота всякие там мантиссы считать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Demeny
сообщение Mar 30 2012, 06:45
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Код
float d = 34.76843;
float result;
d = d - (int)d; /* в d имеем 0.76843 */
result = (float)((int)(100.0 * d + 0.5)) / 100.0; /* в result имеем 0.77  */



--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
andron86
сообщение Mar 30 2012, 06:53
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Цитата(Demeny @ Mar 30 2012, 08:45) *
Код
float d = 34.76843;
float result;
d = d - (int)d; /* в d имеем 0.76843 */
result = (float)((int)(100.0 * d + 0.5)) / 100.0; /* в result имеем 0.77  */

это понятно, но мне нужно 77 а не 0.77
Go to the top of the page
 
+Quote Post
arexol
сообщение Mar 30 2012, 06:57
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 317
Регистрация: 25-09-06
Пользователь №: 20 651



Цитата(andron86 @ Mar 30 2012, 09:53) *
это понятно, но мне нужно 77 а не 0.77


77 = 0.77*100 sm.gif
Go to the top of the page
 
+Quote Post
andron86
сообщение Mar 30 2012, 07:02
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Цитата(arexol @ Mar 30 2012, 08:57) *
77 = 0.77*100 sm.gif

biggrin.gif мда, это наверное пятница biggrin.gif
Go to the top of the page
 
+Quote Post
редактор
сообщение Mar 30 2012, 07:02
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



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


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
Demeny
сообщение Mar 30 2012, 09:44
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(andron86 @ Mar 30 2012, 10:53) *
это понятно, но мне нужно 77 а не 0.77

Это же в корне меняет дело ... rolleyes.gif
Код
float d = 34.76843;
int result = (int)(100.0 * d + 0.5) % 100; /* в result имеем 77  */


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01446 секунд с 7
ELECTRONIX ©2004-2016