?? ftoa.c
字號:
/*********************************************************************
* Copyright (c) 2011-2012,李士偉
* All rights reserved.
*文 件 名:ftoa.c
*描 述:浮點數轉化成ascii碼
*當前版本:V1.00
*作 者:李士偉
*創建日期:2012.01.15
**********************************************************************/
#include <lib\ftoa.h>
/*********************************************************************
*函 數 名:ftoa
*描 述:浮點數轉化成ascii碼
*輸入參數:f: 浮點數
* precision: 小數精度
*輸出參數:dst: 浮點數字符串
*返 回 值:轉化ascii碼使用字節數(包含'\0')
*注 意:
**********************************************************************/
unsigned int ftoa(double f, int precision, char *dst)
{
unsigned long m,n;
int flag = 0;
char buf[40];
char *p = buf + 40;
*--p = '\0';
if (f < 0)
{
f = -f;
flag = 1;
}
m = (unsigned long)f;
f = f - m;
switch (precision)
{
case 1:
{
n = f * 10;
break;
}
case 2:
{
n = f * 100;
break;
}
case 3:
{
n = f * 1000;
break;
}
case 4:
{
n = f * 10000;
break;
}
case 5:
{
n = f * 100000;
break;
}
case 6:
{
n = f * 1000000;
break;
}
case 7:
{
n = f * 10000000;
break;
}
case 8:
{
n = f * 100000000;
break;
}
default:
{
n = f * 1000000;
break;
}
}
do
{
*--p = '0' + n % 10;
n = n / 10;
}
while (--precision);
*--p = '.';
do
{
*--p = '0' + m % 10;
m = m / 10;
}
while (m);
n = buf + 40 - p + flag;
if (flag)
{
*dst++ = '-';
}
do
{
*dst++ = *p;
}
while (*p++ != '\0');
return n;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -