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