- ベストアンサー
割り算について
お世話になります。下記の数値の割り算の仕方をお願いします。 数値 A; 12340.71 B; 12316.54 式 (B-A) / A 解答 少数6位で四捨五入して出力 電卓では0.00195855..との具合ですが、Double Single を駆使してみましたがオーバーフローの連続です。どなたか御教授願います。
- ryu8472
- お礼率78% (109/138)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
それぐらいならコードをそのまま載せてもいいんじゃないかなと。 素直に書けば間違いようがないので、それだけの情報ではどこが間違っているかの指摘もできません。 以下サンプル Dim x As Double Dim y As Double Dim z As Double x = 12340.71 y = 12316.54 z = Round((y - x) / x, 6) MsgBox (z)
関連するQ&A
- 小数の割り算と概数に関しての質問です。
小数の割り算と概数に関しての質問です。 実際に割り算する前の数字のまるめ方がよくわかりません。 たとえば算数、数学の問題で、世界の人口に対する日本の人口の割合を百分率で求めるときに、上から2ケタの概数で求める場合には、9ケタ÷10ケタを計算する前に割る数と割られる数を四捨五入して、上から2ケタの概数にしてから計算しますよね。 しかし、小数第一位を四捨五入して整数で答えなさいと出題された場合にはそのまま割り算をする必要があるのでしょうか。 あるいは上から何ケタ目かを四捨五入してから計算すべきなのでしょうか。 上記の問題を言い換えてみます。 m桁の自然数Aとn桁の自然数Bがある。 A÷Bの小数第三位を四捨五入してできた数をCとする。 Aの上からp桁目を四捨五入した数をA’、Bの上からp桁目をB’とする。 A’÷B’の小数第三位を四捨五入してできた数をC’とする。 CとC’が等しいとき、pの最小値を調べよ、またはm、nを用いて表せ。 CとC’が完全に等しい必要は本当はないのかもしれません。 慣用としてこのような計算をする場合には誤差が入ってもよいとされているのかもしれません。 答えがあるかどうかも分かりませんが、上の例題の場合ではなく、一般的な答えが知りたいです。
- ベストアンサー
- 数学・算数
- 配列(int)要素同士の合計、割り算
配列(int)要素同士の合計、割り算は、どうやってするのでしょうか? ■元データ Array a ( [2] => 2 [1] => 4 [3] => 1 ) Array b ( [1] => 2 [2] => 2 [3] => 1 ) ■導きたい結果1 … キーが同じ場合に、aとbの合計したい Array c ( [1] => 6 [2] => 4 [3] => 2 ) ■導きたい結果2 … キーが同じ場合に、aをcで割りたい(そして、✕100・四捨五入したい) Array d ( [1] => 67 4/6=0.666 [2] => 50 2/4 [3] => 50 1/2 )
- ベストアンサー
- PHP
- エクセルの数式:四捨五入
エクセルの四捨五入の仕方を教えてください。 =ROUNDで (A1+A2)/(B1+B2)の割り算の値を ,0の桁 で四捨五入したいのですが、 ダイカッコとか使わないとダメなんですよね?? エラーになってしまうのは何故? HELP ME-----------!!
- ベストアンサー
- オフィス系ソフト
- エクセルの使い方
エクセルの使い方を教えてください。 大変初歩的なことですが、お願いいたします。 エクセルの表計算で、少数以下の掛け算で合計の数字が少数点以下まで表示されます。 この数値を四捨五入にして、整数にし、さらにこの数値に数値をかけます。 ただ、この四捨五入した数値を整数とは認識せず、少数以下の数値で計算するため、求めたい数値になりません。 この四捨五入した数値を整数と認識するための方法をおしえてください。
- ベストアンサー
- Windows XP
- エクセル 割り算
エクセルでたとえば35を3.5にしたいときは書式からユーザー定義で0"."0#で出来ると思いますが、3.5をユーザー定義で0.35にする方法はありますか?たとえば35や3.5が複数多数なので一括して変換したいのです。前出の通りやると0.4になってしまいます。 m2表示の数字をha単位の数字 つまり10000分の1にしたいのです 関数を使って割り算してコピーすれば数字は簡単に出せますが、 その数字を別の表に貼り付けると全く意味のない数字になってしまうので ユーザー定義からの方法を考えたのですが そうすると3.5のような数字はどうやら四捨五入されて少数になってしまうようです うまくあまり説明できてないかもしれませんがよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCELで小数点以下を四捨五入しない方法
EXCELで例えば、A1セルに7320000 B1セルに156 C1セルに26と入力してA1/B2*C1とすると電卓では、121.9999と続きますが、EXCEL計算では122.0000と勝手に四捨五入されてしまいます。四捨五入されず、実際の121.99999で表示させるにはどうすれば宜しいでしょうか?
- 締切済み
- オフィス系ソフト
- IF関数を短くする方法(階層が深すぎる)
A列に任意の数値が入っています。 そのときB列に、 「A1<999」なら「A1×5.0」して四捨五入 「1000<A1<2000」なら「A1×4.0」して四捨五入 「2000<A1<3000」なら「A1×3.0」して四捨五入 「3000<A1<4000」なら「A1×2.0」して四捨五入 「4000<A1<5000」なら「A1×1.5」して四捨五入 「5000<A1<6000」なら「A1×1.0」して四捨五入 とした計算式を入れたいとおもってます。 IF関数にするとものすごく長くなってしまいます。 短くしたり、他に適応する関数はあるでしょうか? よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- dounle型で計算時の誤差
今、VC++(MFC)で、15桁の数値まで表示可能な電卓アプリを作成しています。 そこで今つまずいているのが、double型で計算したとき(演算結果が小数の場合)の誤差の問題です。 とりあえず、いろいろなHPなどの情報を見たりして、誤差問題解決を下記のようにしました。 「数値の頭(左側)から16桁目を四捨五入する」 小数の場合はほとんど誤差が生じるため、計算後、計算結果が小数ならば、必ず 上記の誤差処理を行っています。 しかしこれでは、以下の場合に不具合が出てしまいます。 ・ 0.99 999 999 999 999 ÷ 10 = 本来の答えは「0.09 999 999 999 999 9」 ⇒ しかし15桁までの表示なので、本来は「0.09 999 999 999 999」と15桁まで出力 させなくてはいけないのに、16桁目の「9」を四捨五入したせいで「0.1」という表示に なってしまう。 16桁目を四捨五入しないと誤差をとることはできないし、でも上記の例だと正しい結果 が出力されません。 どうしたらいいのか頭を悩ませています。 何か良い解決法等あれば、ご教授お願いします!!
- ベストアンサー
- C・C++・C#
お礼
お早い回答有難うございます。確かに情報不足かも。 お書き頂いたサンプルの一回だけの計算なら問題ないのですが、これを下記配列を使用して連続で計算すると何故かオーバーフローの連続になるようです。 DIM HAIR(100,2) As Double 1;X 2;Y 但しX,Yとも5桁で少数第2位 EX 12345.58 等 これを1~100回 Round((y - x) / x, 6)の式を実行するとオーバーフロー発生です。なぜか?今一度、試してみます。 また改めて投稿すると思いますのでその際はよろしくお願いします。 大変有難うございました。