|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:39 am
|
Страница 1 от 1
|
[ 8 мнения ] |
|
| Автор |
Съобщение |
|
perro_iv
Ранг: Новодошъл
Регистриран на: Вто Авг 23, 2005 10:36 am Мнения: 156 Местоположение: Казанлък
|
 C18 и float
Искам една float стойност да я покажа на LCD-то. За целта трябва да я преобразувам в стойност от тип char.
Гледам че няма готова функция.
Дайте малко идей.
|
| Вто Окт 07, 2008 12:13 pm |
|
 |
|
БатеВаньо
Ранг: Новодошъл
Регистриран на: Чет Яну 04, 2007 12:43 am Мнения: 178
|
sprintf()
|
| Вто Окт 07, 2008 2:19 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
printf() също би трябвало да има такава опция ..... поне в CCS има де
|
| Сря Окт 08, 2008 8:50 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Теоретично постановката е : умножаваш флоата по 10,100,1000 в зависимост до кой знак искаш да покажеш, след това си "екстраткваш" по отдделно цифрите от числото (има го описано обширно в една тема как става номера), слагаш си точката на подходящото място и си готов.
|
| Сря Окт 08, 2008 10:16 am |
|
 |
|
Ки4о
Ранг: Форумен бог
Регистриран на: Съб Юли 22, 2006 9:50 pm Мнения: 1638
|
float d;
char outString[8];
sprintf(outString,"%4.3f",d);
|
| Сря Окт 08, 2008 10:58 am |
|
 |
|
rumen65
Ранг: Новодошъл
Регистриран на: Чет Окт 06, 2005 2:06 pm Мнения: 194 Местоположение: Sofia
|
До колкото си спомням, С18 не поддържаше %f, CCS и C30 го поддържат. Правил съм го с %d, и преобразуване на цялата и дробната част (до съответния знак) към цяла.
|
| Сря Окт 08, 2008 11:36 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Можеш да направиш следното:
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Сря Окт 08, 2008 4:02 pm |
|
 |
|
perro_iv
Ранг: Новодошъл
Регистриран на: Вто Авг 23, 2005 10:36 am Мнения: 156 Местоположение: Казанлък
|
малка корекция:
sprintf(string,"%d .%2d", whole, rest );
още едно допълнение:
if (rest < 10)
{
sprintf(string,"%d. 0%d", whole, rest); // разпечатка на дробното число в стринг
}
else
{
sprintf(string,"%d.%2d", whole, rest); // разпечатка на дробното число в стринг
}
|
| Сря Окт 08, 2008 4:50 pm |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|