FormatFloat - C++ Builder

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


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

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

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);

參數(shù):

  • Value:浮點數(shù)擂煞;
  • Format:格式字符串混弥,詳見本文后面的表格;
  • AFormatSettings:地區(qū)格式对省;

返回值:

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

Format 格式:

控制符 說明
0 這個位置必須輸出數(shù)字,如果沒有輸出五鲫,用 0 填補
# 這個位置如果沒有數(shù)字輸出就不輸出溺职,不用填補
. 輸出小數(shù)點。格式字符串里面第一個出現(xiàn)的 '.' 認為是小數(shù)點位置位喂,其他的 '.' 被忽略
, 使用千分位分割符浪耘。格式字符串里面只要 ',' 就會使用千分位分割符,位置和個數(shù)不影響輸出效果
E+e+ 使用科學計數(shù)法塑崖,后面可以緊跟著最多 4 個 '0'七冲,表示指數(shù)的位數(shù),指數(shù)無論是正數(shù)還是負數(shù)都輸出符號 +-
E-e- 使用科學計數(shù)法规婆,后面可以緊跟著最多 4 個 '0'澜躺,表示指數(shù)的位數(shù)蝉稳,指數(shù)正數(shù)不輸出符號,指數(shù)是負數(shù)輸出符號 -
'文字'\"文字\" 單引號和雙引號里面的文字直接原樣輸出
; 如果格式字符串里面包含了分號 ';'苗踪,說明正數(shù)颠区、負數(shù)和零采用不同的格式,分號 ';' 是分割正數(shù)通铲、負數(shù)和零的格式之間的分割符:
沒有分割符:所有的數(shù)字采用同一種格式毕莱;
有1個分割符:前面部分是正數(shù)和0,后面部分是負數(shù)的格式颅夺;
有2個分割符:前面部分是正數(shù)朋截;中間是0;后面是負數(shù)的格式

格式輸出的例子:

格式↓ 輸出↘ 數(shù)值→ 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

注:小數(shù)點和千分位符會被 AFormatSettings 參數(shù)或全局變量 System::Sysutils::FormatSettings 的 DecimalSeparator 和 ThousandSeparator 成員替代吧黄,而不是始終使用 '.'','部服,默認情況,采用的是當前地區(qū)的格式拗慨,比如在法國廓八,小數(shù)點會使用逗號 ',' 而不是小圓點。地區(qū)格式的具體例子請參考 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
`

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赵抢,一起剝皮案震驚了整個濱河市剧蹂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烦却,老刑警劉巖宠叼,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異其爵,居然都是意外死亡冒冬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門摩渺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來简烤,“玉大人,你說我怎么就攤上這事摇幻『嵴欤” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵囚企,是天一觀的道長。 經(jīng)常有香客問我瑞眼,道長龙宏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任伤疙,我火速辦了婚禮银酗,結果婚禮上辆影,老公的妹妹穿的比我還像新娘。我一直安慰自己黍特,他們只是感情好蛙讥,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灭衷,像睡著了一般次慢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翔曲,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天迫像,我揣著相機與錄音,去河邊找鬼瞳遍。 笑死闻妓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的掠械。 我是一名探鬼主播由缆,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猾蒂!你這毒婦竟也來了均唉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤婚夫,失蹤者是張志新(化名)和其女友劉穎浸卦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體案糙,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡限嫌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了时捌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怒医。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奢讨,靈堂內(nèi)的尸體忽然破棺而出稚叹,到底是詐尸還是另有隱情,我是刑警寧澤拿诸,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布扒袖,位于F島的核電站,受9級特大地震影響亩码,放射性物質發(fā)生泄漏季率。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一描沟、第九天 我趴在偏房一處隱蔽的房頂上張望飒泻。 院中可真熱鬧鞭光,春花似錦、人聲如沸泞遗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽史辙。三九已至汹买,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間髓霞,已是汗流浹背卦睹。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留方库,地道東北人结序。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像纵潦,于是被迫代替她去往敵國和親徐鹤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容