FloatToString(float, int, int)

浮動小数値を文字列に変換する。

string FloatToString(
    float fFloat,
    int nWidth = 18,
    int nDecimals = 9
);

Parameters

fFloat

文字列に変換したい浮動小数値

nWidth

小数点の左側の桁数の指定。省略された場合は18

nDecimals

小数点以下の桁数の指定。省略された場合は9(最大値)


Description

浮動小数値fFloatの値を文字列に変換して返す。

小数点以上の桁はnWidthによって指定され、fFloatの小数点以上の桁より大きい場合はスペースを挿入する。逆に桁より少ない場合、もしくは0を指定した場合はスペーシングは行わない。

小数点以下の桁はnDecimalsにより四捨五入される。0の場合は小数点以下の数値を四捨五入した形となる。


Remarks

小数点以下4桁以降の精度が狂うので、nDecimalsの指定は3以下にしたほうがいい。

通常使う場合は

FloatToString(fFloat, 0, 3);

この指定が一番使いやすい。


KnowBugs

小数点以下4桁以降の精度が狂う


Version

1.22


Example

// 様々な指定をした場合の結果の違いを検証
void main()
{
    float fFloat = 12345.67898765432;
    float fFloat2 = 12341.2341234;

    string sFloat1 = FloatToString(fFloat);        // 桁数はディフォルトの18,9
    // 結果 "             12345.678710938"
    // ※ 小数点以上の指定の桁数に満たない部分はスペースが挿入されている。
    // ※ 小数点以下4桁以降は精度が狂う

    string sFloat2 = FloatToString(fFloat,0,0);
    // 結果 "12346"
    // ※ 小数点以上、以下の桁数設定が同じ0でも動作が違う。
    // ※ 小数点以下1桁の四捨五入を行っている。

    string sFloat3 = FloatToString(fFloat,3,3);
    // 結果 "12345.679"
    // ※ 小数点以上の桁の切捨て機能はない。
    // ※ 小数点以下4桁の四捨五入を行っている。

    string sFloat2_1 = FloatToString(fFloat2);     // 桁数はディフォルトの18,9
    // 結果 "             12341.234375000"
    // ※ やはり小数点以下4桁以降は精度が狂う

    string sFloat2_2 = FloatToString(fFloat2,0,0);
    // 結果 "12341"
    // ※ 小数点以下1桁の四捨五入を行っている。

    string sFloat2_3 = FloatToString(fFloat2,3,3);    // 結果 "12341.234"
    // ※ 小数点以下4桁の四捨五入を行っている。

} 


See Also

functions: FloatToInt | StringToFloat | StringToInt
categories: Type Casting/Conversion Functions


author: Charles Feduke, editor: Jochem van 't Hull, JP team: ngtaicho
Send comments on this topic.