ベストアンサー 浮動小数点から文字列の変換の時に 2001/11/30 15:56 浮動小数点floatからStrへの変換をgcvt関数で行なうときに、値が小さいと文字列0.00005が欲しいのに5e-05になってしまいます。 どうすればよいですか?教えてください。 みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー leaz024 ベストアンサー率75% (398/526) 2001/11/30 19:53 回答No.1 私はgcvtという関数を知りませんが、名前と結果から想像するに、 sprintf( str, "%1.g", f ); ということをしているのではないでしょうか。 (f に 0.00005 を代入して実行すると、str は "5e-05" になります。) printf 系の関数で変換文字に "g" または "G" を指定すると、 ・指数部が -5 以下か、有効精度以上のときは、e または E 変換を行い、 ・それ以外のときは、f 変換を行います。 ※ f 変換は「0.00005」のような小数形式に、g/G 変換は「5e-05(または5E-05)」のような指数形式になります。 素直に f 指定の sprintf 関数を使うか、お手持ちのライブラリから「fcvt」という名前の関数を探すかしてみて下さい。(多分こんな名前になっていると思う。) 質問者 お礼 2001/12/18 19:00 回答ありがとうございましたm(__)m なんとかかんとか解決することが出来ました。ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A IEEE754浮動小数点規格 14.625をIEEE754浮動小数点規格の単精度(float)の書式(-1)^s ×1.f×2^(e-127)に直す場合、この値をとりあえず2進数に直すのですが、 14.625=+1110.101となると書いてあったのですが、 14を二進数に変換すると1110になることはわかるのですが、625がなぜ、101になるのかわかりません。僕自身、単に625を計算したら、101110001になりました。どう625を2進数に変換したらよいですか。 小数点を文字列に 小数点(floatなど)を文字列に変換するにはどうしたらいいでしょうか? (char*)でするとエラーがでます。 どのようにしたらいいでしょうか? よろしくお願いいたしますm(__)m 浮動小数点数型 単精度浮動小数点型と倍精度浮動小数点数型、それぞれ値がとりうる範囲を教えてください。 単精度浮動小数点型 負の値は -3.4028235E+38 ~ -1.401298E-45、 正の値は 1.401298E-45 ~ 3.4028235E+38 の範囲の値 倍精度浮動小数点数型 負の値は -1.79769313486231570E+308 ~ -4.94065645841246544E-324、 正の値は 4.94065645841246544E-324 ~ 1.79769313486231570E+308 の範囲の値 とは記述してあるのですが、実際に小数1桁なら整数部はどのくらいの範囲の値がとれるのか、皆目わかりません。 どうか、わかりやすく教えてください。 よろしくお願い致します。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム EXCEL16進⇒浮動小数変換したい EXCELで8桁の16進文字列を単精度浮動小数点数に変換する方法を教えてください。 浮動小数点について 当方、浮動小数点を勉強しているのですが、 テキストの解説を読んでも理解が出来ません。 正規化とか指数と仮数の意味が分かりません。 そこで質問なのですが、浮動小数点の計算方法を教えて下さい。 IEEE形式の浮動小数点も教えて頂けると助かります。 また、下記の問題について解説して下さい。 数値を16ビットの浮動小数点表示法で表現する。 形式は図に示す通りである。10進数0.375を正規化した表現は、どれか。 ここでの正規化は、仮数部の有効数字よりも上位の0が無くなるように、 指数部を調節する操作である。 (図は添付します) 何故「E」の値が「1111」になるのでしょうか。 お手数ですが、ご教授お願いします。 尚、特に分かり易いホームページがあったら、 そのURLを記載して頂いても結構です。 以上、よろしくお願い致します。 浮動小数点変換 (1)次の数値をIEEE754単精度形式で正規化された浮動小数点に変換し、結果を8桁の16進数で表記しなさい。 (a)0.5 0.5を二進数で表すと0.1 0.1*2^0であるから 0 00000000 10000000000000000000000 (b)1.0 1.0を二進数で表すと1.0 0.1*2^1であるから 0 10000000 10000000000000000000000 (c)1.25 1.25を二進数で表すと1.010 0.101*2^1であるから 0 10000000 10100000000000000000000 浮動小数点への変換、あってますでしょうか? また結果を8桁の16進数で表記とありますが 0.5だったら16進数で表すと0.9?これを8桁*16^なんとか乗で表すということでしょうか? sprintf関数での文字列変換について マイコンにて、 C言語で浮動小数点の数値を表示するプログラムを作成しているのですが、 PRINT_OUT("123.456"); のように、文字列を直接指定した場合は正しく表示されるのですが、 sprintf()関数を用いて、浮動小数点を文字列に変換した場合、 buf char[10]; sprintf(buf,"%lf",123.456); PRINT_OUT(buf); とした場合はプログラムが暴走?(恐らく配列破壊を起こしていると 思われますが、)してしまい、上手く動作しません。 (但し、整数の場合は正常に動作します。) そこで、質問させていただきたいのですが、 "123.456"のように直接文字列を指定した場合と、浮動小数点123.456 をsprintf()関数を用いて文字列に変換した"123.456"の書式に何か 違いはあるのでしょうか?よろしくお願い致します。 javascriptで浮動小数点の問題 javascriptで浮動小数点の問題を解決しつつevalをつかった電卓を作ることはできませんか? >>> //-が欲しい場合 var array2 = str.match(/-?[0-9]+\.?[0-9]*/g); for(var i = 0; i < array2.length; i++) { console.log(parseFloat(array2[i])); } な感じで数値を抜き出し 計算記号+-*/に従ってmathのメソッドを順次呼び出す関数を作成すればいいのです。 計算記号については抜き出した数値を文字列として数えれば抜き出せるはず。 このように教えてもらいましたが、正直難しすぎてさっぱりわかりません。 evalでは浮動小数点の問題は解決できないのでしょうか? 便利なライブラリなどもないでしょうか? 浮動小数点 浮動小数点について勉強していますが、本を見てもよくわかりません。 「イクセス表記とは、本来8ビットで表現できる値は0~255であるのに対し、元の値に127を加算することにより、-127~128までの表現を可能としています。つまり、Eが0の場合は-127を、Eが127の場合は0を、Eがすべて1の場合は128を示しています。」(日経BP社) とありましたが、 ●127を加算したら、なぜ-127~128か?このマイナスはどうしてでてくるのか? 何か、例をあげて教えてもらえればうれしいです。 よろしくお願いします。 浮動小数点法での2進数変換 浮動小数点法を用いての2進数への変換に関して質問です。 10進数の(-0.0001)を浮動小数点表示を用いて2進数に変換しなさいという問題が全くわかりません。 どなたか詳しく解説してください。お願いします。 浮動小数点は 0 含まれますか 0 は整数 integer ですが、 浮動小数点でもありますか? 0.00000 は浮動小数点ですか? 浮動小数点の小数点3桁を。。。 宜しくお願いします。C言語を使い三角関数の計算を行っております。小数点3位以下は四捨五入にしたいのですが、そのような関数が有りますでしょうか? 環境はQuickC(MSDOS)です。 もしなければ文字列にでも変換し直して行うのでしょうか?一般的な方法など御在ましたらお教え下さい。 宜しくお願いします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 小数点入りの文字列をfloat型に変換 例えば、 32.1 のように4文字の文字列が、あるchar型配列に入っている場合、この値を使って計算したいので、float型などに変換したいのですが、どんな方法がありますか? 『浮動小数点』について 最近、ふと『浮動小数点』について疑問を持ちました。 それは『浮動小数点』がどんな場合に役立つのか?という事です。 C言語では標準で『float』型と『double』型がありますよね。 私は昔、C言語を始めたころにテスト・プログラムなどで使った経験しかなく その後に『電卓ソフト』を作ろうとしたときに『誤差』が原因で役に立たない ことを知りました。『誤差』があることは知っていましたが…。 そこで質問。内容は『浮動小数点』はどんな場面で利用されているかです。 実際の『ソフトウェア開発』や趣味でフリーソフトを作った場合も含み、あと こんな場面で役に立つのではという事を知りたいのです。 アンケートみたいになりますが、『アンケート』カテゴリでは、あまり回答などが 集まらないと思い『C/C++』カテゴリのこちらで質問としました。 よろしくお願いします。 C#のキャストについて(32bit浮動小数点) こんにちは。 現在、Visual Studio 2005を使用してC#のプログラムを作成しています。 32bitの浮動小数点のデータを表示しようとしているのですがうまくいきません。 具体的な例としては 0x42F6E9E0 → 123.456789 0x4476E9E0 → 987.654321 のように変換した結果を表したいと考えています。 c言語では int main() { int h = 0x42F6E9D5; float f; f = *(float *)(&h); return 0; } のようにすればfで値(123.45678)が取得できたのですが、 これと同じ事をC#ではどのように書くのでしょうか? ポインタを含んだキャストのやり方がわかりません。 以上よろしくお願い致します。 浮動小数点演算と固定小数点演算の使い分けについて 解説書などには、「浮動小数点は3.14E0の形」や「固定小数点は3.14」などと説明されています。 では、例えば、ごく一般的な32ビットマシンで「3.14 * 45.6」という命令を書いたときに演算されるのは浮動小数点演算なのか、固定小数点演算なのかがわかりません。例えばIntelのx86CPUは、内部にFPUを持っているそうですが、この場合は「3.14 * 45.6」は、内部では必ず浮動小数点演算になっているということなのでしょうか? 「3.14 * 45.6」を「3.14E0 * 4.56E1」と書いた場合にしか浮動小数点演算されないということではないと思っているのですが、実際の浮動小数点演算と固定小数点演算の内部的な切り替えがわかりません。 理解が足りなくて、おかしな質問になっていましたら、その点もご指摘いただければうれしいです。 Excel2003で文字列をコピーすると浮動小数点に 皆様はじめまして。よろしくお願いします。 早速ですが,Excel2003についての質問です。 あるセルの文字列(数値ではありません)を別のセルにコピーしたら,文字列が浮動小数点のようになってしましまいました。そのときのデータは消去してしまいましたので今はありません。同様の操作を何度繰り返しても再現しません。このままではExcelが信用できなくなるので,同様の経験をお持ちの方,またはExcelにお詳しい方のご回答をお待ち申し上げます。 浮動小数点について 32ビットの浮動小数点(符号1ビット指数8ビット仮数23ビット)で最小値を求めるにはどういう計算をすればいいのでしょうか?また調べた数値だと最小値 1.175494351E-38 最大値3.402823466E+38のところ±3.40282347E+38 ~ ±1.40239846E-45のところがあるのですがどちらが正しいのでしょうか? 浮動小数点の変換手順 単精度の浮動小数点の演算で、符号無しの2進数に変換した後、バイアスとして127を加えて嵩上げする理由は何でしょうか? 単精度浮動小数点方式、16進数 10進数で22.75で表される値を単精度浮動小数点方式で表現し,それを16進数に変換するとどうなりますか? 22.75(10)→1.421875 4+127=131=10000011(2) 0.421875=0.011011(2) ここからのやり方教えてください 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答ありがとうございましたm(__)m なんとかかんとか解決することが出来ました。ありがとうございます。