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
`