私はArduino用の完全なdoubleからfloat関数を書いています(無関係ですが、「適切な」ものは見つかりませんでした)。次のチェックを行います。
if (d < 0) {
d *= -1;
bin += "-";
}
浮動小数点の不正確さのために、二重の等価性が厄介であることを私は知っています。それで、それをするのは安全ですか?または、これに固執する必要があります(とにかくコードの後半で使用します)
int compareNums(double x, double y) {
if (abs(x - y) <= EPSILON) {
return 0;
} else if (x > y) {
return 1;
} else {
return -1;
}
}
d < 0
いくつか簡単な質問がありd < 0.0
ます。
double d
小数部分がなくなるまでa に 10 を掛けるので、 と同様のチェックを行いd == (int) d
ます。使用するのに適したイプシロンは何か疑問に思っています (ここでこれを使用しましたhttp://msdn.microsoft.com/en-us/library/6x7575x3(v=vs.80).aspx )。無限ループで終わる。記事によると、0.000000119209
フロートなどの識別可能な最小の違いです。
ありがとう