順序表示的串——順序串3——將浮點型別轉換為對應的字串
阿新 • • 發佈:2018-12-03
將函式void ftoa(double f, char[])中的浮點數f轉換為相應的字串,存放在s中。其中,最多保留4位小數。例如1234.67轉換為“1234.67”,-56.789867轉換為“-56.7898”
【分析】
該題是北京航空航天大學的考研題。在將浮點數轉換為相應的字元時可分為兩個部分進行轉換:先將浮點數的整數部分轉換為字串,然後將浮點數的小數部分轉換為字串。轉換時需要取出浮點數中的每一位數字,然後加上48就轉換為字元了。
main.cpp
#include <iostream> using namespace std; #define MAX 100 void ftoa(float f,char s[]); void main() { double f; char s[MAX]; cout << "請輸入一個浮點數:" << endl; cin >> f; ftoa(f, s); cout << "轉換後的字串為:" <<s << endl; system("pause"); } void ftoa(float f, char s[]) { int i, j, len, t, n; double sign; if ((sign=f)<0) { f = -f; } n = int(f); i = 0; do { s[i++] = n % 10 + 48; } while (n/=10); if (sign<0) { s[i++] = '-'; } len = i; for (i = 0,j = len - 1; i < len / 2;i++,j--) { t = s[i]; s[i] = s[j]; s[j] = t; } f -= (int)f; s[len++] = '.'; for (i = 0; i < 4;i++) { f *= 10; s[len++] = ((int)f) % 10 + 48; } while (s[len-1]=='0') { len--; } s[len] = '\0'; }
結果: