¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ 0464NAME IS NULL2013/02/07(木) 17:16:43.62ID:YOB+WVgd select 50.0 * 37.23 A, cast(50.0 as double precision) * 37.23 B, round(50.0 * 37.23, 0) ROUND_A, round(cast(50.0 as double precision) * 37.23 , 0) ROUND_B from rdb$database
ABROUND_AROUND_B 1861.51861.518621861
なぜROUND_B は1862にならないんでしょう? 0465NAME IS NULL2013/02/07(木) 17:19:05.45ID:YOB+WVgd うわ崩れてしまった
A 1861.5
B 1861.5
ROUND_A 1862
ROUND_B 1861
です。 0466NAME IS NULL2013/02/13(水) 07:13:53.32ID:n919/EWx しらないなら黙ってればいいのに 0467NAME IS NULL2013/02/20(水) 11:11:41.91ID:??? そんなこと言うから誰も書かないし・・・ >>464 これ、よくある丸め誤差じゃないですかね? 浮動小数点を2進で格納するときに近似値化したのが、10進に戻す時に誤差として出るやつ。 Firebirdのソースコードを見てないし、見てもたぶんよーわからんと思うので憶測ですけど、 コンパイラが用意してるround関数の結果をそのまま返すような作りになってるのなら そういう誤差が出ることもあり得ると思います。 ていうかコンピューターを使う上での「お約束」なので、他のソフトを使っても出るときは出る。 どうしてもそこを倍精度にする必要があるのなら 誤差になる部分のケタを上げて計算してから戻すか、 > round(cast(50.0 * 10 as double precision) * 37.23 / 10 ,0) ROUND_B あるいはroundを使わずに0.5足して切り捨てすれば > cast(cast(50.0 as double precision) * 37.23 + 0.5 as integer) ROUND_B とりあえず回避できそうですが。 0468NAME IS NULL2013/02/28(木) 14:39:24.87ID:??? そんなことドヤ顔で言われてもな。聞く方もあれだが。 0469NAME IS NULL2013/03/10(日) 01:01:49.55ID:??? 趣味のプログラムに組み込むので、このDBを使ってみようと思ったけど このスレだと質問するのに、むちゃくちゃハードル高そうですね
やっぱあきらめて、SQLiteかSQL Server CEにします 0470NAME IS NULL2013/03/10(日) 01:23:13.31ID:??? そう?まぁ普通の人はユーザ会のYahoo Groupで聞いてると思うんで… 0471NAME IS NULL2013/03/10(日) 01:34:07.30ID:??? おおっ・・・と思って見てきたけど人あんまりいないじゃ無いですか・・・・ Delphiユーザーが多いみたいですが
Visual Studioなので、やっぱちょっとやめときます 深夜の愚痴につきあってくれて感謝です 0472NAME IS NULL2013/03/10(日) 10:56:37.09ID:??? 別に盛り上がるほど問題があるわけじゃなし、普通に使えるからねぇ。 0473NAME IS NULL2013/03/13(水) 13:17:49.11ID:nuhI4HCk 使うにあたって特に質問することが何もないよな。 0474NAME IS NULL2013/03/18(月) 21:50:22.34ID:??? 何にハードル感じてるのかわからない。 0475NAME IS NULL2013/03/19(火) 05:58:33.19ID:??? 日本人ならハードルはユーザー数だろ 0476NAME IS NULL2013/03/19(火) 21:52:02.25ID:??? 情報集めるのに不自由しないくらいたくさんユーザーいるだろ。 0477NAME IS NULL2013/03/20(水) 05:56:20.28ID:??? いや日本人は特に理由もなく多数派に付くのが好きということ 0478NAME IS NULL2013/03/25(月) 21:31:39.25ID:lQC1kwHf 2.5.2 Security Update 1/2.1.5 Security Update 1がリリースされてます 0479NAME IS NULL2013/04/10(水) 12:40:11.35ID:5JAUsSaE ほ 0480NAME IS NULL2013/04/11(木) 16:05:06.21ID:??? 3はいつになったらでるの? 0481NAME IS NULL2013/04/11(木) 17:32:21.38ID:??? 3に何を期待してるの? 0482NAME IS NULL2013/04/16(火) 14:53:21.47ID:??? 昔このDB使ってたんだけど、トランザクション回数が21億回超えたら 動かなくなる仕様ってまだ残ってる?
64bit版ならもっと上限増えてるのかしら 0483NAME IS NULL2013/04/17(水) 10:01:37.11ID:/DOnkyK1>>482 昔から使ってるけど聞いたことないぞ 0484NAME IS NULL2013/04/18(木) 18:37:47.21ID:???>>483 「Firebirdの歴史 トランザクションID」 でぐぐってみて
たとえば ttp://firebird.gr.jp/firebird/site_rsrc/images/0/osc2006tokyo/OSC2006_Firebird.pdf のFirebirdの概要-Transaction IDで 32bit long が最大値、リセットするにはデータベース止めるしかないことがわかる 0485NAME IS NULL2013/04/18(木) 19:10:11.97ID:??? トランザクションをそこまで継続させるほうが異常 0486NAME IS NULL2013/04/18(木) 19:16:47.97ID:??? 30秒に1回トランザクションしても2108年持つね。 0487NAME IS NULL2013/04/18(木) 19:42:19.23ID:??? 30秒に一回ってそんなのんきな 0488NAME IS NULL2013/04/18(木) 20:45:56.23ID:??? のんきなってそんなにしょっちゅうコミットだらけのシステム実用に何の? 0489NAME IS NULL2013/04/18(木) 23:55:22.89ID:??? トランザクションは更新の時だけやないやろ。 0490NAME IS NULL2013/04/19(金) 01:23:40.04ID:??? 30秒に1回でコミットだらけなのか・・・・ 皆さんとは感覚が違ってたみたいすみませんでした。 0491NAME IS NULL2013/04/19(金) 05:05:21.90ID:??? つうかそれに耐えられるハードならバックアップリストアなんてあっという間に終わるじゃろという話 0492NAME IS NULL2013/04/19(金) 05:07:13.13ID:???>>489 え?更新しないのにID増えるわけないよね 0493NAME IS NULL2013/04/19(金) 05:25:17.79ID:???>>490 平均の話してんのに感覚とか意味不明 0494NAME IS NULL2013/04/19(金) 09:12:41.82ID:??? 普段もっと忙しいシステムばっかさわってるから あなたが携わっているような30秒に一回のトランザクションも無いくらいが普通なんだって感覚がなかったってことです 0495NAME IS NULL2013/04/19(金) 10:30:45.27ID:iF+eJaWb そもそもそんな忙しいシステムにFirebird使おうとか考えないよねw 0496NAME IS NULL2013/04/19(金) 17:43:28.86ID:???>>494 平均の意味分かってるよね? 0497NAME IS NULL2013/04/19(金) 17:45:39.84ID:??? しかも論点は何秒に1回とかそこじゃねーし 0498NAME IS NULL2013/04/19(金) 17:47:56.91ID:???>>494 で、君のシステムだと何ヶ月ぐらい持ちそうなの? それ言わないと話し始まんないジャン 0499NAME IS NULL2013/04/20(土) 15:56:29.21ID:???>>498 答えないと話を進ませない人ですね 0500NAME IS NULL2013/04/20(土) 17:50:14.80ID:??? 間違いと気づいたなら素直に謝りなよ FBには瑕疵はないよ 0501NAME IS NULL2013/04/21(日) 01:49:32.38ID:??? ID出ないのをいいことにw 0502NAME IS NULL2013/04/21(日) 08:44:52.26ID:??? >484 のpdfなどを読んだが トランザクションidは行ユニークじゃないか 1行に対して2Gトランザクションを超えるシステムは扱った事がない とは言え有り得ないとまでは言えないか 0503NAME IS NULL2013/04/21(日) 18:10:57.58ID:??? 事実上ありえないから 0504NAME IS NULL2013/04/22(月) 08:42:01.91ID:??? なんか2000年問題とか2038年問題みたいだなw 自分が生きてる間持てばいいっていう発想 0505NAME IS NULL2013/04/22(月) 09:18:17.90ID:C+FpbsyQ>>504 ぜんぜん違うだろw アホかw 0506NAME IS NULL2013/04/22(月) 16:14:43.53ID:??? 罵倒しないとレスれないのか? 0507NAME IS NULL2013/04/22(月) 16:43:10.50ID:??? 起こる可能性のあることは、いつか実際に起こる。 0508NAME IS NULL2013/04/22(月) 21:07:24.43ID:??? バックアップリストアなしで2000年とかありえないから 0509NAME IS NULL2013/04/22(月) 21:08:56.71ID:??? >507 ハードよりソフトの方が寿命が長いとでも思ってんの? 0510NAME IS NULL2013/04/22(月) 21:09:48.53ID:??? もとい、ソフトよりハードの方が 0511NAME IS NULL2013/04/22(月) 21:31:05.04ID:??? postgresもだいぶ昔のバージョンはトランザクションidは32bit unsigned intの40億回有限だった。(今もだけど) バージョンが7.2とかだったかな。 postgresトランザクションID周回でググってみるとよい。