データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ
仕様で Double だと書いてあるなら、利用者は必要に応じて Int などを使えばよいわけで、どうしてそのような仕様なのかはここで議論しても正解はありません。納得いかないとしても、それはここで他の参加者に言うことではなく、Microsoft にフィードバックするなりサポートリクエストするなりしてください(サポートリクエストには費用が掛かります)。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
CONBIN関数は組合せ数を求める関数です。組合せ数ですから当然結果は整数を返すと思っていたら、以下のような状態です。
MOD(COMBIN(35,16),1)=0.999998569
MOD(COMBIN(40,16),1)=0.999961853
MOD(COMBIN(41,16),1)=0.999984741
MOD(COMBIN(44,16),1)=0.999938965
つまり、結果は整数ではなく、小数点以下もある数値になっており、かつ誤差も1に迫るものになっています。
これは検証の仕方に問題があるのでしょうか?
それともCOMBIN関数が中途半端な仕様なのでしょうか?
これではではユーザーはCOMBIN関数の結果を参照するときは、INT関数とセットで使うという知識がないといけないということになってしまいませんか?
INT(COMBIN(35,16))というような使い方をしないと正しい整数値が返らないということだとすると、最初から関数内でそのような処理をいれておけばよい話です。
何か理由があってこのような仕様なのか、あるいはバグなのか、あるいは検証の仕方に問題があるのか、理由が判る方がいらっしゃったら教えてください。
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
仕様で Double だと書いてあるなら、利用者は必要に応じて Int などを使えばよいわけで、どうしてそのような仕様なのかはここで議論しても正解はありません。納得いかないとしても、それはここで他の参加者に言うことではなく、Microsoft にフィードバックするなりサポートリクエストするなりしてください(サポートリクエストには費用が掛かります)。
浮動小数点演算が Excel で不正確な結果をもたらす可能性があるー Microsoft Lean
他に「浮動小数点 Excel」でググったり、BingAIで調べられると認識が変わると思います。
| OpenAIを使用した回答 |
|---|
| COMBIN関数は、整数の限界を超える可能性がある為に浮動小数点数を返すように設計しているとのことですが、整数には限界があるのですか? |
| はい、整数には限界があります。コンピューターは、有限のビット数で数値を表現するため、表現できる整数の範囲には限界があります。<br><br>例えば、32ビットの整数型では、-2,147,483,648から2,147,483,647までの整数しか表現できません。<br><br>COMBIN関数は、このような限界を超える可能性があるため、浮動小数点数を返すように設計されています。 |
<追記>
AIの言い回しは、学習を進めていけば変わってくると思います。
<追記2>
設計仕様について不満がある様でしたら、AI回答の通りフィードバックして下さい。
<追記3>
> 組合せ数ですから当然結果は整数を返すと思っていたら
関数リファレンスには、「戻り値」について記載されてないですね。
これもフィードバックしても良いかも分かりませんね。
>大きな数値を扱う場合に、整数の限界を超える可能性があるためです。
意味不明です。「整数の限界を超える」とはどういう意味ですか?
整数に限界があるのですか?
>COMBIN関数の結果が整数であることを必要とする場合は・・・
このような言い回しは、詭弁と言わざるを得ません、
組合せ数が整数でなくてもよいと思う人はいるのでしょうか?
| OpenAIを使用した回答 |
|---|
| COMBIN関数は、浮動小数点数を返すように設計されています。<br><br>これは、大きな数値を扱う場合に、整数の限界を超える可能性があるためです。<br><br>このため、COMBIN関数の結果が整数であることを必要とする場合は、INT関数を使用する必要があります。<br><br>このような仕様は、Microsoft Excelの設計上の決定であり、バグではありません。<br><br>ただし、この仕様についてのフィードバックは、Microsoftに送信することができます。 |