FormatFloat - C++ Builder

C++ Builder 參考手冊 ? System::Sysutils ? FormatFloat


格式化浮點數,把浮點數按照參數給定格式轉成字符串

頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數原型:

System::UnicodeString __fastcall FormatFloat(
    const System::UnicodeString Format,
    System::Extended Value);
System::UnicodeString __fastcall FormatFloat(
    const System::UnicodeString Format,
    System::Extended Value,
    const TFormatSettings &AFormatSettings);

參數:

  • Value:浮點數;
  • Format:格式字符串,詳見本文后面的表格;
  • AFormatSettings:地區格式;

返回值:

  • 把參數 Value 的值按照參數 Format 的格式轉為字符串;
  • 地區格式:這個函數使用了地區格式的 DecimalSeparator 成員作為小數點、ThousandSeparator 成員作為千位分隔符,不同的地區可能會使用不同的字符當做小數點和千位分隔符,中國和大多數國家一樣使用小圓點作為小數點、逗號作為千位分隔符,但是有的國家 - 例如法國:使用逗號當做小數點、空格當做千位分隔符,如果程序在法國和越南等國家的電腦上運行,默認情況所有的小數點都會使用逗號的,包括浮點數和貨幣型,程序國際化時要特別注意;
  • 如果有 AFormatSettings 參數,使用這個參數的格式;
  • 如果沒有 AFormatSettings 參數,使用 全局變量 System::Sysutils::FormatSettings 作為地區格式;
  • AFormatSettings 或 System::Sysutils::FormatSettings 的例子請參考 FloatToStrF
  • 沒有 AFormatSettings 參數的函數不是線程安全的,因為使用了全局變量作為默認的地區格式;帶有 AFormatSettings 參數的函數是線程安全的。

Format 格式:

控制符 說明
0 這個位置必須輸出數字,如果沒有輸出,用 0 填補
# 這個位置如果沒有數字輸出就不輸出,不用填補
. 輸出小數點。格式字符串里面第一個出現的 '.' 認為是小數點位置,其他的 '.' 被忽略
, 使用千分位分割符。格式字符串里面只要 ',' 就會使用千分位分割符,位置和個數不影響輸出效果
E+e+ 使用科學計數法,后面可以緊跟著最多 4 個 '0',表示指數的位數,指數無論是正數還是負數都輸出符號 +-
E-e- 使用科學計數法,后面可以緊跟著最多 4 個 '0',表示指數的位數,指數正數不輸出符號,指數是負數輸出符號 -
'文字'\"文字\" 單引號和雙引號里面的文字直接原樣輸出
; 如果格式字符串里面包含了分號 ';',說明正數、負數和零采用不同的格式,分號 ';' 是分割正數、負數和零的格式之間的分割符:
沒有分割符:所有的數字采用同一種格式;
有1個分割符:前面部分是正數和0,后面部分是負數的格式;
有2個分割符:前面部分是正數;中間是0;后面是負數的格式

格式輸出的例子:

格式↓ 輸出↘ 數值→ 12345.6789 0 -12345.6789
"0.00" 12345.68 0.00 -12345.68
"0.000" 12345.679 0.000 -12345.679
"#,0.00" 12,345.68 0.00 -12,345.68
"#,##0.00" 12,345.68 0.00 -12,345.68
"000000.000" 012345.679 000000.000 -012345.67
"000,000.000" 012,345.679 000,000.000 -012,345.679
"0.000E+00" 1.235E+04 0.000E+00 -1.235E+04
"'正'0.00;'負'0.00;零" 正12345.68 負12345.68
"0" 12346 0 -12346
"0.###" 12345.679 0 -12345.679
"0.######" 12345.6789 0 -12345.6789
"0.000###" 12345.6789 0.000 -12345.6789
"0.000000" 12345.678900 0.000000 -12345.678900

注:小數點和千分位符會被 AFormatSettings 參數或全局變量 System::Sysutils::FormatSettings 的 DecimalSeparator 和 ThousandSeparator 成員替代,而不是始終使用 '.'',',默認情況,采用的是當前地區的格式,比如在法國,小數點會使用逗號 ',' 而不是小圓點。地區格式的具體例子請參考 FloatToStrF


相關:

  • System::Sysutils::FloatToStr
  • System::Sysutils::FloatToStrF
  • System::Sysutils::FloatToText
  • System::Sysutils::FloatToTextFmt
  • System::Sysutils::FloatToDecimal
  • System::Sysutils::FloatToCurr
  • System::Sysutils::TryFloatToCurr
  • System::Sysutils::TextToFloat
  • System::Sysutils::StrToFloat
  • System::Sysutils::StrToFloatDef
  • System::Sysutils::TryStrToFloat
  • System::Sysutils::StrToCurr
  • System::Sysutils::StrToCurrDef
  • System::Sysutils::TryStrToCurr
  • System::Sysutils::CurrToStr
  • System::Sysutils::CurrToStrF
  • System::Sysutils::FormatFloat
  • System::Sysutils::FormatCurr
  • System::Sysutils::TFloatRec
  • System::Sysutils::TFloatValue
  • System::Sysutils::FormatSettings
  • System::Sysutils::TFormatSettings
  • System::Sysutils::StrToBool
  • System::Sysutils::StrToBoolDef
  • System::Sysutils::TryStrToBool
  • System::Sysutils::BoolToStr
  • System::Sysutils::DateTimeToStr
  • System::Sysutils::DateTimeToString
  • System::Sysutils::DateToStr
  • System::Sysutils::GUIDToString
  • System::Sysutils::IntToStr
  • System::Sysutils::IntToHex
  • System::Sysutils::TimeToStr
  • System::Sysutils::UIntToStr
  • System::Sysutils
  • System::Currency
  • System
  • std::itoa, std::_itoa, std::_itot, std::_itow
  • std::ltoa, std::_ltoa, std::_ltot, std::_ltow
  • std::ultoa, std::_ultoa, std::_ultot, std::_ultow
  • std::_i64toa, std::_i64tot, std::_i64tow
  • std::_ui64toa, std::_ui64tot, std::_ui64tow
  • std::ecvt, std::_ecvt
  • std::fcvt, std::_fcvt
  • std::gcvt, std::_gcvt
  • <cstdlib>

C++ Builder 參考手冊 ? System::Sysutils ? FormatFloat
`

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,238評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,430評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,134評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,893評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,653評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,136評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,212評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,372評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,888評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,738評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,482評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,179評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,588評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,829評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,610評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,916評論 2 372

推薦閱讀更多精彩內容