- ベストアンサー
小数の四捨五入
お世話になります。 タイトルのとおりなのですが、ただ0.2332232…みたいな小数ではなく、 DBから取得した小数で、 2.46674e+007 のような感じで後ろに+~という文字がついてしまっている小数の四捨五入の仕方です。 これをroundで四捨五入すると、0になってしまいます。 // $float_numが2.46674e+007だとして // 小数第3位まで取得 $float_num = round($float_num,3); 出力結果:24667400 2.467という値を取得したいです。 どうかご教授いただけないでしょうか。
- myaa_myu
- お礼率84% (241/285)
- PHP
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
<?php $float = "2.46674e+007"; echo $float."<br>"; $float_num = round((float)$float,3); echo $float_num."<br>"; $float_num2 = split("e", $float); $float_num = round((float)$float_num2[0],3); echo $float_num; ?> 単純に(float)でキャストしただけでは、小数点が消えてしまうみたいなので、eの前だけ取り出して四捨五入してはどうでしょうか?
関連するQ&A
- Access2000 小数第3位で四捨五入
質問させていただきます。 Access2000で以下の計算式を作りました。 金額 = Round(重量 × 単価,2) これは「金額」を小数第3位で四捨五入します。 ところが以下の数値の場合、正しく計算してくれません。 764.00 = 0.479 × 1595 本当は 764.005 だから 小数第3位で四捨五入すると 764.01 になると思うのですが・・・。 ちなみに以下の値では・・・ 754.44 = 0.473 × 1595 (754.435だから小数第3位で正しく四捨五入されています)。 やり方が悪いのでしょうか?それとも他に正しく計算できる方法があるのでしょうか?
- ベストアンサー
- オフィス系ソフト
- 小数点の四捨五入で分からないことがあります
例えば、0.230978という値を小数点第4位を四捨五入したら、答えは0.231ですか?それとも0.2310が答えですか? また、0.8という値を小数点第1位を四捨五入したら、答えは1.0ですか?それとも1ですか? よろしくお願いします。
- 締切済み
- 数学・算数
- 四捨五入について
今、SELECT文で取得した値をround()を使って四捨五入したいのですが、構文エラーになります。 SELECT ROUND( SELECT 0.2*(SLECT number FROM sample WHERE id =1) ); ROUND()内のSELECT 0.2*(SLECT number FROM sample WHERE id =1) で、値が12,6のように返ってきます。 しかし、round()で四捨五入して13を取得しようとすると構文エラーになります。 どうしたらいいのでしょうか? よろしくお願い致します。
- ベストアンサー
- PostgreSQL
- 四捨五入について
"1.005"を小数点第三位で四捨五入して、"1.01"にしたいのですが、 "Math.round(1.005*100)/100"だと1.005*100が100.4999999999998になってしまい、結果的に"1.00"が返されてしまいます。何か良い解決方法はないでしょうか?
- ベストアンサー
- JavaScript
- 算数の四捨五入が分かりません
小学生レベルの四捨五入の問題なのですが、 (1) 0.75を小数第一位で四捨五入し、整数で表せ (2) 0.01を小数第二位で四捨五入し、小数第一で表せ (3) 4.2を小数第一位で四捨五入し、整数で表せ などという問題が、昔のことですっかり忘れてしまって分からない状態なんです。 ちなみに(1)の答えは『1』なんじゃないかな、と考えたりもしたのですが違うのでしょうか? このような四捨五入の仕方を教えていただけると助かります。 明日までにどうしても解かなければならないので、回答宜しくお願いします!
- 締切済み
- 数学・算数
- エクセルの数式:四捨五入
エクセルの四捨五入の仕方を教えてください。 =ROUNDで (A1+A2)/(B1+B2)の割り算の値を ,0の桁 で四捨五入したいのですが、 ダイカッコとか使わないとダメなんですよね?? エラーになってしまうのは何故? HELP ME-----------!!
- ベストアンサー
- オフィス系ソフト
- 小数点4桁での四捨五入がうまくいきません
エクセルで次のような計算をさせます。 A2 に1.8、B2に0.075、C2に0.075、 D2に= A2*B2*C2 、E2に=roundup(D2,4) D2の計算結果は 0.010125 です。小数点第5桁目の値を参照して第4桁目で四捨五入したいのですが、roundupでは0.0102、rounddownでは0.0101です。 表示させたいのは0.0101です。この場合、rounddownを使えば問題ないのですが、逆にrounddownだと小数点以下4桁目の四捨五入がうまくいかない場合もあります。 例えば A3に2.7 B3に0.08、C3に0.08 があり、E3にすべての値を掛けた結果を表示させると0.01728となります。 =roundup(E3,4)では0.0173となり、rounddownでは0.0172となります。この場合はroundup関数の結果である0.0173が求める数値です。 A列、B列,C列に任意の数字が入り、E列に4桁目で四捨五入した正確な値を求めたいのですが、なにか良い方法はないでしょうか。 VBAを使っても構いません。ちなみにこれは木材の材積計算に使用する目的です。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- PHP5における四捨五入について
PHP5でラウンド関数を使用しても境界値の5の値を切り捨ててしまい,四捨五入が上手くできません。 具体的には,以下の感じです。 $C = ROUND($B / $A,2) "C=282.25" $D = ROUND($C,1) "D=282.2" ※データ型は特に定義していません。 どのようにしたら四捨五入が上手くできるか教えて頂けないでしょうか。よろしくお願いします。
- 締切済み
- その他(ソフトウェア)
- Excel2000で変則的な四捨五入の関数を教えて下さい。
関数式を教えて下さい。 小数点以下を四捨五入した結果を整数で出したいです。 但し、普通のROUND関数で出た答えを尚も、下一桁が5づつ飛ぶように.. たとえば、 100.5--101--100(求めたい値) 101.7--102--100(求めたい値) 102.5--103--105(求めたい値) 105.8--106--110(求めたい値) 112.4--112--110(求めたい値) 113.5--114--115(求めたい値) 118.5--119--120(求めたい値) こんな感じです。(中央の値は特に必要ではありません) 四捨五入し、且つ5の倍数の整数での値が欲しいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます! あと、、、申し訳ありません、私の勘違いでした。 てっきりDBに格納された値は2.46674……と続く少数だと思っておりましたので、四捨五入の仕方を質問させていただいたのですが、丸め誤差(?)によるもので2.46674e+007という数字は少数ではなかったようです。。。 ですが、この方法は今後使えそうですね。是非活用させてください。 ありがとうございました!!