| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| C18 и float http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=6156 |
Страница 1 от 1 |
| Автор: | perro_iv [ Вто Окт 07, 2008 12:13 pm ] |
| Заглавие: | C18 и float |
Искам една float стойност да я покажа на LCD-то. За целта трябва да я преобразувам в стойност от тип char. Гледам че няма готова функция. Дайте малко идей. |
|
| Автор: | БатеВаньо [ Вто Окт 07, 2008 2:19 pm ] |
| Заглавие: | |
sprintf() |
|
| Автор: | valioman [ Сря Окт 08, 2008 8:50 am ] |
| Заглавие: | |
printf() също би трябвало да има такава опция ..... поне в CCS има де |
|
| Автор: | Cekins [ Сря Окт 08, 2008 10:16 am ] |
| Заглавие: | |
Теоретично постановката е : умножаваш флоата по 10,100,1000 в зависимост до кой знак искаш да покажеш, след това си "екстраткваш" по отдделно цифрите от числото (има го описано обширно в една тема как става номера), слагаш си точката на подходящото място и си готов. |
|
| Автор: | Ки4о [ Сря Окт 08, 2008 10:58 am ] |
| Заглавие: | |
float d; char outString[8]; sprintf(outString,"%4.3f",d); |
|
| Автор: | rumen65 [ Сря Окт 08, 2008 11:36 am ] |
| Заглавие: | |
До колкото си спомням, С18 не поддържаше %f, CCS и C30 го поддържат. Правил съм го с %d, и преобразуване на цялата и дробната част (до съответния знак) към цяла. |
|
| Автор: | ¶ [ Сря Окт 08, 2008 4:02 pm ] | |||||||||
| Заглавие: | ||||||||||
Можеш да направиш следното:
|
||||||||||
| Автор: | perro_iv [ Сря Окт 08, 2008 4:50 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
малка корекция: sprintf(string,"%d.%2d", whole, rest ); още едно допълнение: if (rest < 10) { sprintf(string,"%d.0%d", whole, rest); // разпечатка на дробното число в стринг } else { sprintf(string,"%d.%2d", whole, rest); // разпечатка на дробното число в стринг } |
|||||||||||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|