- 1 名前:名無しさん@お腹いっぱい。 [2005/09/22(木) 20:29:34 ]
- UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド
過去スレ(プログラム技術板) Part6 pc8.2ch.net/test/read.cgi/tech/1116908090/ Part5 pc8.2ch.net/test/read.cgi/tech/1105723117/ Part4 pc5.2ch.net/test/read.cgi/tech/1095843584/ Part3 pc5.2ch.net/test/read.cgi/tech/1085930894/ Part2 pc5.2ch.net/test/read.cgi/tech/1055110889/ Part1 pc2.2ch.net/tech/kako/992/992057422.html Part3ミラー makimo.to/2ch/pc5_tech/1085/1085930894.html Part2ミラー makimo.to/2ch/pc5_tech/1055/1055110889.html 関連スレ Cygwin使っている人いますか? その14 (UNIX板) pc8.2ch.net/test/read.cgi/unix/1107587275/ Cygwin使っている人いますか? 3 (Windows板) pc8.2ch.net/test/read.cgi/win/1090131123/ 関連板 Linux板 pc8.2ch.net/linux/ プログラム技術板 pc8.2ch.net/tech/
- 206 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/28(金) 18:15:54 ]
- ひどいマルチだ。
pc11.2ch.net/test/read.cgi/tech/1205795434/26 pc11.2ch.net/test/read.cgi/linux/1118024349/691
- 207 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/28(金) 19:23:33 ]
- $ iconv -l
とか、 iconv_open("char", "wchar_t") とかの話?
- 208 名前:名無しさん@お腹いっぱい。 [2008/03/30(日) 16:15:16 ]
- env
とかで調べろ
- 209 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/31(月) 11:37:44 ]
-
黒 タ イ ツ の 暗 黒 シ ュ シ ュ ト リ ア ン
- 210 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 01:28:48 ]
- Hello world
- 211 名前:名無しさん@お腹いっぱい。 [2008/05/28(水) 09:28:01 ]
- ムー板に書きましたが、誰も相手にしてくれません:
>struct timeval tv; の値って、 doubleの変数に入出力できたりしますか? というか、timeval <---> double 変換したいのですが、 どういうコードでできますか?
- 212 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 09:31:05 ]
- >>211
期待する動作と、自分でやったことと、自分でやった結果(期待とどう違ったのか)、説明が 抜けてるから相手にされないんだろ。無理もない。
- 213 名前:211 mailto:sage [2008/05/28(水) 09:36:54 ]
- いや、標準の関数とかマクロでできると思ってるので、
その名称を教えて頂きたいだけなんですが。
- 214 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:06:01 ]
- ムー板というと
UFOの真実! とかそういうネタを扱う板だろうか?
- 215 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:17:13 ]
- >>211
struct timeval tv; double d; d = (double)(tv.tv_sec + tv.tv_usec/1000000.0); >>212 わからないなら黙ってろ
- 216 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:17:28 ]
- そういうのが好きな人の集まった板でつ。
関連板: 魔板
- 217 名前:211 mailto:sage [2008/05/28(水) 10:18:30 ]
- >>215
知りたいのはその内容ですた orz
- 218 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:24:32 ]
- >>213 >212
- 219 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:26:19 ]
- >>218
>>215 で解決済。 期待する動作は自明。 「自分でやったことと、自分でやった結果」なんて書かなくてもわかる。
- 220 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:34:32 ]
- >>219
いやね、 tv.tv_sec*1000000.0 + tv.tv_usec なんて答えもあり得るし、 そもそも >215 で正解なら、そんなもん真っ先に自分で書くだろうから 何か変わった変換を期待してるか、そうでもなけりゃコードレベルで ミスってるんじゃないかと思っちゃったんだよ。 > 「自分でやったことと、自分でやった結果」なんて書かなくてもわかる。 おぉ。エスパー乙。 あ、「こんな質問する人が自分で何かやってるわけない」、ってことかな。
- 221 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 10:37:36 ]
- エスパーすると、
tv.tv_usecを100万で割る時に、末尾の「.0」を付け忘れて int扱いで切り捨てられたとかだろ。
- 222 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 17:58:12 ]
- >>215
相変わらず、素人丸出し駄目回答で粋がっているのか。 自ら恥晒すことないのに… 引っ込んでなよ。
- 223 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 18:13:22 ]
- >>222
>>217
- 224 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/28(水) 18:52:17 ]
- 具体的に指摘されないとわからないようだ。本当にヘボなんだな。
d = (double)(tv.tv_sec + tv.tv_usec * 1e-6); 乗算をつかう理由は二つある。先生に聞いてきなさい。www
- 225 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 19:05:21 ]
- 2chに書き込む手順を教えてください
- 226 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 19:07:12 ]
- 1.10年ROMる。
2.書き込みたいスレで書き込んでも良いか質問する Yes→書き込む No→1へ
- 227 名前:名無しさん@お腹いっぱい。 [2008/06/03(火) 11:22:39 ]
- プログラムからファイル書き込みするとして、
ファイルの権限付与はどういうAPIで行うのでしょうか? できればファイルを書き込む前に設定したいのですが、 umaskっていうAPIあるのでしょうか? ググっても見あたりませんが。
- 228 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 11:47:51 ]
- 1ページ目で見つかってますが。
- 229 名前:227 mailto:sage [2008/06/03(火) 11:49:24 ]
- thx>>228
あ、UNIX とか プログラミングとか余計なワードを入れたから混乱しましたが、 ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/umask.2.html で良いわけですか。 もしくは、 ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/chmod.2.html かな。
- 230 名前:227 mailto:sage [2008/06/03(火) 11:52:03 ]
- 良く考えると、umaskだと、
プログラム自身がファイルを書き出すときの設定を行うわけではなくて、 ディレクトリの設定変えてしまうわけですよね。 行儀が悪いですよね。 やっぱ、chmodかな。
- 231 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 12:00:10 ]
- 関連質問させて下さい。
rootユーザーがファイルを作成すると、そのディレクトリがリード権限になってしまったりする場合ありますか?
- 232 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 12:39:17 ]
- >>230
ちげーよ。 umaskは既に存在するファイル(ディレクトリ)には何の影響も及ぼさない。 そのプロセスが「作成する」ファイル(ディレクトリ)のモードのマスクを設定する。 umaskはプロセス固有の情報なので、作成したファイル(ディレクトリ)には記録されない。 >>231 ならない。 キミ、根本的に誤解しているから、基本から調べなおす事をすすめる。
- 233 名前:227 mailto:sage [2008/06/03(火) 12:42:12 ]
- とりあえずthx>>232
- 234 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/04(水) 07:29:17 ]
- >>226
質問はどうやって書き込むかをどうやって質問しますか
- 235 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/04(水) 08:12:33 ]
- 「仮にぼくが質問できるようになったとしよう」と仮定法で進めてはどうか?
- 236 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/04(水) 16:44:37 ]
- 書き込む方法についての質問を書き込む方法は?
- 237 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 13:49:46 ]
- 書き込む方法が分からないまま書き込んでいますか?
- 238 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/31(木) 19:26:13 ]
- プログラミングしりとり
game14.2ch.net/test/read.cgi/575/1010948472/l50
- 239 名前:名無しさん@お腹いっぱい。 mailto:age [2008/10/05(日) 18:30:14 ]
- プログラム中(C言語)にて/dev/ttyA1やttyA0といったデバイスファイルに対し
ボーレート・パリティの設定をioctl関数で行いたいんだけど、 渡す引数等がわかりません。 ご存知の方教えてください。
- 240 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/05(日) 19:04:16 ]
- >>239
ioctl()をじかに呼ばずに、tcsetattr()使った方がいいよ。
- 241 名前:239 mailto:age [2008/10/05(日) 20:19:05 ]
- >>240
ありがとうございます。 tcsetattr()は初めて聞く関数名でした。 tcsetattrはioctlをラッピングしたAPIと考えてよろしいのですか?
- 242 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/05(日) 20:47:21 ]
- >>241
ラッパーと考えていいよ。 ioctl()直接の場合、OSによって TCGETAだったりTCGETSだったり、やりかたが変わる。 tcsetattr()を使えば、OS共通で同じやりかた。 struct termiosに値をセットして呼べばいい。
- 243 名前:239 mailto:age [2008/10/05(日) 23:10:30 ]
- >>242
丁寧にありがとうございます。 早速試してみます。
- 244 名前:名無しさん@お腹いっぱい。 [2008/11/04(火) 08:16:43 ]
- /etc/hostsを参照する場合って何のライブラリをつかうんですか?
- 245 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/04(火) 08:20:14 ]
- >>244
gethostent()
- 246 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/08(土) 16:50:36 ]
- ダミーのカーネルドライバを作って/dev にデバイスを生成し
mmap経由でエンドアプリとデバイスアクセスアプリとやりとりをするレイヤー的なものを作ろうと思っているのですが 解析しやすいソースとか資料になるサイトがあれば紹介願います。 ちなみにver7.0です。 なんかver6.*からいろいろ変更があるみたいで拾ったソースとか引数が違っていたりしました。
- 247 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/08(土) 17:28:39 ]
- Windows7か。もうソースまで流出したのか。
- 248 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/10(月) 00:17:14 ]
- >>246
fuseとか。
- 249 名前:246 mailto:sage [2008/11/10(月) 12:11:30 ]
- >>248 あんがとです。
fuseはドライバではなくてエミュレータのようです。 v4l関連を追ってみることにします。
- 250 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/10(月) 18:01:49 ]
- エミュ…?
- 251 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/10(月) 18:09:34 ]
- こ、、工ミュ...?
- 252 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/12(水) 00:32:03 ]
- なんだ、女か。
- 253 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/25(火) 10:42:53 ]
- FreeBSDでカーネルドライバ作るとき機種毎の関数を同じ名称にして
別のファイルに分散して設定ファイルを読み込んでデバイスIDとのマッチングを行ったあと 該当ファイルを読み込む形にしようとおもうのですが 設定ファイルの置き場所に関してルール(例えば/etcとか)があるのか サブプログラムもkoでないといけないのか ユーザープログラムと同じようにsoにしてdlopenとdlsym使っていいのか そしてその場合の置き場所に妥当なところを 教えてくださいませ。
- 254 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/28(金) 22:41:10 ]
- エクセルのマクロでプログラミングをしています
その内容は「じゃんけん」です はい=グー いいえ=チョキ キャンセル=パー にしたいのですが どうやればよいのでしょうか? 教えてください
- 255 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/30(日) 20:42:22 ]
- >253
カーネルドライバは基本的にファイルシステムの マウントより先に初期化されるわけでして、ハイ。
- 256 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/30(日) 20:53:39 ]
- >>255
そんなことはわかってるよ。 だから、ファイルシステムのマウントより前に読むために、 例えば/etcとかの特定の置き場所があるのか、 koにする必要があるのか、dlopenとdlsymを使っていいのかを聞いてるんだろ。
- 257 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/03(水) 11:51:37 ]
- >>256 そのとおり!!
現実問題としてloader.confを読んでいるときはファイルシステムは成立しているはずだから loader.confに記述するかkldloadでスタートできるならいいのかなと思っています。 デバイスリストなどユーザーサイドで編集できるようにしておけば プログラムの再コンパイルなどしないでもデバイスIDを登録すれば使えるようにしたいのです。 そのための対応ライブラリーのロードです。 現実問題として同じICチップを使っているデバイスIDの違う製品がでると いちいちソースに手を入れてビルドし直さなくてはいけないようなことがあったからです。
- 258 名前:名無しさん@お腹いっぱい。 [2008/12/04(木) 02:14:01 ]
- C言語で質問なんですが、二つの実数が小数点1ケタまで等しいとき
に〜するみたいにしたいんですけど、 if(a == b){ 〜 } ってやったら実数が完全に等しくないといけないじゃないですか・・・ どうやれば上記のようにできますか?
- 259 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 02:25:28 ]
- 丸めろ
- 260 名前:258 [2008/12/04(木) 09:07:24 ]
- 丸めるってなんですか?
初心者なのであまりくわしくないです。
- 261 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 09:56:38 ]
- 珍しいスレが上がってると思ったら
なんだ、釣りか……
- 262 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 10:19:18 ]
- >>259
引っかけ問題に引っかかったね。 「小数点1ケタまで等しい」→「小数点1ケタ目までの数字が同じ」 だから、丸めたら不正解。
- 263 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 10:24:13 ]
- if (fabs(a - b) < 0.1)
- 264 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 10:27:49 ]
- >>263
それだと 1.09 と 1.1 でも一致とみなされる >>262 参照
- 265 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 10:31:23 ]
- >>262 は抜きして、丸める方式でOKだとしても、
>>263 だと 1.11 と 1.02 が一致と判定されるから駄目だな
- 266 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 10:42:06 ]
- 1.11と1.02は偽
1.00と1.09は真 実際はこんな比較を行いたいわけがない。
- 267 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 10:48:37 ]
- >>266
数値符号の生成処理なんかだと、 文字通りの数字の一致を判定したいことがあるよ。 1.11と1.02は偽 1.00と1.09は真 そういう比較を行ないたい。
- 268 名前:名無しさん@お腹いっぱい。 [2008/12/04(木) 11:08:11 ]
- 文字列化シロ
- 269 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 11:13:46 ]
- なんで誰も10倍してfloorしろとアドバイスしてやらないんだ
- 270 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 11:57:36 ]
- オーバーフローするかもしれんじゃん。
- 271 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 14:18:50 ]
- そんなでかいdoubleなら、小数点以下は0だから、別チェックを前に入れるだけ
- 272 名前:名無しさん@お腹いっぱい。 [2008/12/04(木) 20:04:28 ]
- >>269にツッコミを入れるなら floorでなくてIntだろ。
floorだと-2.0と-2.3が違う値になる。 だから不正解 それと実数は10倍してintだと化けることがあることを忘れるな。 整数部と小数部を分離して 整数部チェックの後 小数部の判定をすればいい
- 273 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 20:09:49 ]
- そろそろ正しいコード書いて見せろよ
- 274 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 22:02:12 ]
- 珍しいスレが上がってると思ったら
なんだ、釣りか……
- 275 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/04(木) 22:10:07 ]
- んじゃ、俺が。
int compare(double a, double b) { char s1[512], s2[512], p; snprintf(s1, sizeof(s1), "%f", a); if ((p = strchr(s1, '.')) && p[1]) p[2] = 0; snprintf(s2, sizeof(s2), "%f", b); if ((p = strchr(s2, '.')) && p[1]) p[2] = 0; return !strcmp(s1, s2); }
- 276 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 07:10:19 ]
- >>275
そんなことしなくても、 sprintf() で "%.1f" のフォーマットで文字列化すれば 最初から小数点以下第1位までで文字列カットできる。
- 277 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 07:16:16 ]
- >>276
アフォか。"%.1f" だと丸められてしまうだろ。
- 278 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 08:58:20 ]
- 指摘される前になおしておこう。
int compare(double a, double b) { char s1[512], s2[512], *p; snprintf(s1, sizeof(s1), "%f", a); if ((p = strchr(s1, '.')) && p[1]) p[2] = 0; snprintf(s2, sizeof(s2), "%f", b); if ((p = strchr(s2, '.')) && p[1]) p[2] = 0; return !strcmp(s1, s2); }
- 279 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 09:27:12 ]
- >>278
別の指摘するよ。 "%f" は、デフォで小数以下6桁精度に丸められる。("%.6f"と同じ) なので、1.9999999 が、2.0 に丸められてしまう。
- 280 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 10:44:50 ]
- ふむ、10倍するのも計算誤差で小数点第1位が変わる可能性があるな。
そもそも、外部表現から浮動小数点に変換した時点で誤差が発生するから、 BCD使えという結論か。
- 281 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 11:20:41 ]
- 丸め方式はFPUに指定コードを与えれば変えることができる。
そもそも精度を取り違えている。6桁の精度に対して10桁の演算精度があるなら 最下位2桁部分の丸めで精度が狂うことはない。 それは最初の質問者が「文字」で質問していたことでも分かる。 今回の場合無理に比較するのではなくて 二つの引き算した結果の符号をとって(絶対値化) その値から0.1引いた値が正ならfalse というのが一番無難。
- 282 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 11:39:11 ]
- >>281
それ、>>263 と同じ。 263は、>>264-265 で否決。
- 283 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 12:04:28 ]
- IEEE 754 として、10倍して整数部をとったんじゃだめな具体例を誰かプリーズ。
- 284 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 13:03:09 ]
- >>283 仮数部フルにつかってたらだめだろ。
せめて整数化して小数部だけにしてからからという前提にシロ
- 285 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 13:15:16 ]
- だから、具体例を。
double f = 0.1; f = floor(f*10.0); printf("%d\n",f==1.0); => 1 だよ。
- 286 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 14:38:49 ]
- a = 300000000000000.3125;
b = 300000000000000.3750; printf("%f %f %d\n", a, b, floor(a * 10) == floor(b * 10));
- 287 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 17:36:14 ]
- なるほど。わかったよ。
正に限ると、 floor(a) == floor(b) && floor((a-floor(a))*10) == floor((b-floor(b))*10) でおけ?
- 288 名前:258 [2008/12/05(金) 23:03:41 ]
- ちなみに実数は0より小さいです。それで小数点2桁目を四捨五入したいです。
一応自分で作ったんですが double x=0.15; int a; x+=0.05; a=x*10; x=(double)a/10.0; これで大丈夫ですかね?
- 289 名前:258 [2008/12/05(金) 23:04:35 ]
- ↑間違えました。0でなく1より小さいです。
- 290 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 23:05:41 ]
- >>267
お前らあほだな。 sprintfとstrncmpで解決だろ。
- 291 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 23:24:56 ]
- 覆面算をマクロで解きたいのですが教えてください
B、C、Dは0を除外 C A B +) B A C ---------------------- D A B A
- 292 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 23:29:42 ]
- マクロってm4あたり?
- 293 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 23:31:33 ]
- >>292
エクセルのマクロです
- 294 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 23:42:27 ]
- まったく板ちがいです。おひきとりください。
- 295 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/05(金) 23:44:00 ]
- 失礼しました
- 296 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 00:29:52 ]
- >>288
0より小さい実数は負なのだが… 中学数学をやり直せ。
- 297 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 10:16:03 ]
- >>296
0より小くて負よりも大きい数oがあるとしたら?
- 298 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 10:40:46 ]
- >>290
sprintf()する時に、"%f"の変換で勝手に四捨五入されるから不可。
- 299 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 10:48:11 ]
- >>297
そんな実数があるのか?
- 300 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 11:37:11 ]
- 1.0以下なら
10倍説でいいけれど >>287はかっこが足りないだろ それに正が前提と言うならfabsなりabsなりいれればいいじゃないか。 あとsprintf関連のつっこみは四捨五入(rint)じやなくてroundだろ。 もちょっと「道具の仕様」はしっておこうよ double演算でも特定のライブラリーを使っていると高速化のため「singleモード」に設定していて 丸め誤差も出やすくなったりしていることもある。もっぱらWinに多いけど 逆にlong doubleにしておけば丸め精度はでにくい。 今回の場合しょっぱなの「見た目の数字」なんだからsprintfでの誤差は 最初に認識した文字列にも反映されているはず 1以下限定なら文字列の段階で整数として入力するか 文字列できるほうがいい しかしネタとして考えるならばbit比較とかマニアックな関数とか 論理的に完璧なものとかそういうものの方がおもしろい。 というかUNIX板なんだからネタとして解を求めるならbc前提にするとか 仮数部のビット比較してみるとか特定ツールにしぼるか FreeBSDでのextendedというかlong doubleでの精度アップとか もうちょい下のほうにするとかにシチクリ
- 301 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 11:47:11 ]
- 使えるツール、足りないツールを作る。それがプログラミング
できない人は覚えたい。できる人でも穴はある。 UNIXはツールが多いようでつなぎも情報もすくないんだから 貴重なスレをあんまり算数の遊びみたいなんでスレを消費するない。 やるならせめてbcとかシェルとか局所的なものにしちくれ
- 302 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 11:50:30 ]
- >>300
> >>287はかっこが足りないだろ どこが? > それに正が前提と言うならfabsなりabsなりいれればいいじゃないか。 単純に入れたら、正=負とかいう馬鹿な結果が出るから、めんどうだっただけ。
- 303 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 12:27:28 ]
- 貴重なスレって、長寿スレでも狙ってるのか? w
実数演算の話題はあまりないので結構楽しかったぞ。
- 304 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 12:45:32 ]
- 板違いと思っていたから参戦しなかったが、
その辺のことはアメリカ人が詳しくまとめてるよ。 やつらは実数部でドル、小数部でセントを表すことをよくやるから。 いろいろな言語にBCD演算を入れる提案がつきないのもそのため。 exact calculation floating point number あたりでググってくれ。 IEEE 754を仮定して近似計算で、BCD相当の結果を出すものがたくさんある。 中にはbit演算で正規化されたIEEE 754表現を扱うものまである。 現代のCOBOL、Javaのページにもこんなんがあるしな。(単純なものだけ) java.sun.com/developer/JDCTechTips/2001/tt0807.html
- 305 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 12:46:37 ]
- 今のペースだと、Part1なのに10年以上あるスレってか
- 306 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/06(土) 12:51:59 ]
- >>304
それは、内部表現を固定小数というか、 全部セントに統一しなかったアメリカ人が馬鹿なだけのような
|

|