記事カテゴリ

ユーザー機能


 2024年3月29日(金) 09:29 JST

数値の丸め方っていろいろあるんだ

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    8,246

数値を扱う際に数値を丸めることは日常的に行われています。
その方法は、切り捨て/切り上げ/四捨五入 と考えるのが最も一般的であるかと思います。
このように列挙すると他に何があるの?と言う話になりますが...
四捨五入には実はいろいろな方法があるようです。数年前、Delphi の四捨五入の方法が、一般的によく使用されている下記のような半ば常識とした四捨五入の方法と異なっていることから、Delphi の四捨五入の実装方法である Banker's Rounding (=IEEE754 で規定されている) の内容を調べたことがあります。
その四捨五入の方法とは下記のような仕様でした。

基本的には最も近い整数値に丸めつつも,上下の整数が等しく近い場合には偶数となる方を優先する。
具体的には、丸めたい一つ下の桁を参照して、その数字が4以下であれば切り捨て6以上であれば切り上げする。5の場合は特殊で、1桁上(丸めたい桁)が奇数なら切り上げそうでなければ切り捨てする。

この調べものの際に、Microsoft の丸めを行うカスタム プロシージャを実装する方法を参照したことがあります。
このページにはいろいろな丸めの方法が記載されており、そのコーディング方法も記載されていて非常に参考になりました。
最近また見る機会があったので、知らない人もかなり多かったこともあり、自分のメモがてら載っけておきます。

Visual Studio 2005 に挑戦!

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    4,574
今週から VS 2005 による C# でのプログラムの勉強を開始した。<やっとか!

仕事で C# か Java を使うことになっているため、とりあえず Java はちょっと遠慮させていただきたいので、C# を始めている。(仕事での担当者の意向にもよる。その上司は Java 派の様なのだが...)

これまでにも、VS2002?3? を購入したり、先日の MSC2005 で本を買ったりしてはいたのだが、やはり気持ちがのらない。でも今回は仕事なのでがんばるつもりで...

で、本格的な開発に入る前の調査として C# & .Net Framework 2.0 での開発に問題がないのか?と言うところが年内の仕事になっている。
調査内容をブレイクダウンしてみると...
  1. Database が Postgres V8.1 に決定したので、それに接続が可能か?(できればネイティブで)
  2. O/R マッピングが使用したいとの要望から、Nhibernate が VS2005 で動作するか?

上記に沿って二日ほど調べたのだが、Postgres に付属している PostgresSQL 用の .Net Data Provider は .Net Framework 1.1 用しか提供されていないようだ。
これでは最初の要件が達成できないので、Google で調べてみる。
スポンサーに CoreLab へのリンクがあった。早速、ここの製品である PostgreSQLDirect .NETを 試してみる。(6フィールドまでに限定された試用版がある。)
サンプルも付属していたので、それを元に試してみる。試してみると結構簡単につながった。つながったけど、日本語が文字化けしている。たぶん Encoding の指定が正しくないと直感的に考え Encoding 指定を探すが見つからず、CoreLab のサイトのフォーラムから Unicode を使用したいと書いている投稿を見つけた。その投稿によると Unicode を使用する場合には Charset プロパティを使用するとのこと。このプロパティを "SJIS" に変更してみると問題は解決した。(ちなみに Postgre に付属の Npgsql を使用する場合には、接続文字列に Encoding=SJIS と指定するか、 接続後 SET CLIENT_ENCODING TO SJIS と SQL を発行するようです。ちなみに後者の方法は CoreLab のドライバでも有効でした。)

NHibaernate の方もダウンロードしてきて試してみる。こっちは @IT や CodeZine に記事があったのでそれを読んだ。
今回は特に CodeZine の「を利用してSQLを書かずにデータベースにアクセスする方法」を参考にさせていただいた。CodeZine では記事はふつうに非会員でも読めるが、サンプルは会員のみとなっているので、登録させていただいた。
こちらも、このサンプルのおかげで NHibernate が VS2005 上で動作することは確認できた。
しかし、必要な要件の (1)と(2)の組み合わせがうまくいかない。
NHibernate の接続文字列の設定が Npgsql のものしか提供されていない。だめ元で Npgsql 用に改造してみるが、つながらない。とここで、Npgsql への参照設定が抜けていたことに気づき、これを加えてみるがやはりうまくいかない。
CoreLab のフォーラムで投稿を検索してみる。他のドライバへの投稿を含め 3 投稿発見できたが、接続文字列の例はなく暗礁に乗り上げた格好だ。
この開発の着手が来年3月以降に予定しているので、それまでに Npgsql が .Net Framework 2.0 に対応してくれることを期待しつつ他を探している。

Delphi 2005 General Update 3 (Japanese) リリース.

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    3,296

先週MLでCapricornさんにDelphi 2005 Update3 Englishがでてるのを教えてもらってたので、日本語有るかな?と見てみたら、日本語版が有った!

早速MLに報告だー。と思ってメールを見たら、すでに報告済みでした。(お昼頃)

TUpdateSql ではまった...

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    5,211

Delphi 2005ではまった訳では無いのですが...

最近仕事で、データベースをUIと直接接続して更新画面を作成してます。
直接接続してるのは、そっちの方が楽かな?と思ったからですが、
編集した後、"やっぱやめ!"と言うことがやりたいためだけに、キャッシュアップデートを使用しています。RollBackを使う方法もあるのですが、何か負荷が大きそうなので使ってません。

XOOPS インストール

  • 記事を友だちにメール
  • 印刷用ページ
  • 投稿者:
  • 表示回数
    3,660

今日は仕事で UML での表現でかなり詰まったので、本屋に UML 関連で前々からチェックしていた本がないかな?と行ってみた。
目当ての本は無かったのだが、これまた以前から関心のあった XOOPS 関連の本を見つけ、立ち読みしてしまった。
つい買ってしまったのだが、自宅に帰って読んだところ、5分でインストールが出来ると書いてあったので、インストールをしてみた。
5分もかからなかったが、インストールした後どのモジュール(拡張機能)を組み込んで良いのかがわからず、途方に暮れた。
これも、ぼちぼちやって行こうと思うが、XOOPS のサイトでモジュール紹介のぺージが、サンプルを見れるようになってたらモジュールのチョイスがしやすいのにと思った。
サイトのデザインについては、ネットをぐぐったら、XOOPSのリデザインというぺージを見つけたので、ここらでも読んでみようと思う。
インストールは5分だけど、その後は茨の道だね。どのCMSもこうなんだろうか?


サイトカレンダー

サイトカレンダーをスキップ

2024年 03月
«
»
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

新着情報

記事 新着(24時間)

-

コメント 新着(2日)

-

トラックバック 新着(2日)

-

リンク 新着(2週)

新しいリンクはありません

ファイル (14日)