概要
変数が浮動小数点型である場合に、代入する値が整数 [1] であっても、型に合った数値リテラルを指定 [2] したほうがよいでしょうか。
[1] ここでいう整数とは int 型という意味ではなく、数学の意味での整数 (0, 1, 2, ...)
[2] 例えば、整数1を浮動小数点型の変数に代入する場合に、float 型なら 1.f、double なら 1. としたほうがよいかどうか
C++ の例
cpp
1#include <cmath> 2#include <iostream> 3 4int main() 5{ 6 // sample1 7 { 8 double a = std::sqrt(10); // (1) 9 double b = std::sqrt(10.); // (2) 10 11 std::cout << std::boolalpha << (a == b) << std::endl; // true 12 } 13 14 // sample2 15 { 16 float a = 0; // (1) 17 float b = 0.f; // (2) 18 19 std::cout << std::boolalpha << (a == b) << std::endl; // true 20 } 21}
Python の例
python
1import math 2 3a = math.sin(1) // (1) 4b = math.sin(1.) // (2) 5 6print(a == b) # True
聞きたいこと
以下のどれが好ましいでしょうか。
double a = 1; double a = 1.; double a = 1.0;
- 縮小変換 (例: double -> float) ではないので、
double a = 1
でも問題はないでしょうか? - コードの可読性の面では
double a = 1.
よりdouble a = 1
のほうが好ましいでしょうか?
前からずっとモヤモヤしているので、皆さんのご意見を伺いたいと思います。
よろしくおねがいします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/13 07:53
2019/03/13 08:08
2019/03/13 08:30