これは初めて見ました。私が見ているソースコードはCです
if( rate < 0.){
...
}
else{
...
}
次の場合はどうなりrate=0ますか?
0.型のリテラルdouble(および値ゼロ) です。対照的に、0は 型のリテラルですint。
整数 ( ) ではなく0.、倍精度 ( ) として解釈しています。 0.00
リンクを確認してください: of "working code"、さまざまなタイプのゼロ定数のさまざまなサイズを示しています。
0.は浮動定数であり、接尾辞がないためdouble、ドラフト C99 標準セクション6.4.4.2 浮動定数から、次の文法があります。
浮動定数:
10 進浮動定数
16 進浮動定数
10 進浮動定数:
分数定数 指数部オプション浮動接尾辞オプション
数字列 指数部 浮動接尾辞オプション
[...]
分数定数:
数字列のオプション。数字列
数字列 . < ---- これは 0 をカバーします。
[...]
次に、段落4に次のように記述します。
サフィックスのない浮動定数の型は double です。f または F の文字を接尾辞として付けると、float 型になります。文字 l または L を接尾辞として付けると、long double 型になります。