MW211 EXIT

devlog
注意/switch-case文のdefault
2017年02月10日
switch-case文の「default:」は誤記があっても
コンパイルエラーでひっかからない。

「:」なので、通常のラベルとして普通に認識される。

「dafault:」とかでも気づかないことがあるので注意。
分類:注意
Word/表の列幅を固定する
2017年02月09日
表を選択すると、メニューバー(リボン)上に「表ツール」のメニューが(一時的に)追加され
その中の「レイアウト」から「自動調整」の「列の幅を固定する」を選択する。
分類:Word
端数処理後の復元
2017年02月08日
消費税8%の税込金額を税抜金額に変換する際、小数点以下の端数誤差が気になる。

ただ、税込金額を計算する時に端数処理をどうしていたかがわかれば
誤差なく復元が可能なようだ。

  (1) 四捨五入で税込金額を計算していた場合 → (除算後に商を)四捨五入すればOK
  (2) 切り上げで税込金額を計算していた場合 → (除算後に商を)切り捨てすればOK
  (3) 切り捨てで税込金額を計算していた場合 → (除算後に商を)切り上げすればOK

元の金額(税抜金額)を×1.08し、整数となるよう四捨五入する。
それ(税込金額)を÷1.08し、整数となるよう四捨五入する。
するとその結果(再計算した税抜金額)が元の金額と必ず一致する。
→Excelで「1~2097152」まで試してみたが全て一致した
  ┌──────────────────────────────────┐
  │7─(×1.08)→7.56─(四捨五入)→8─(÷1.08)→7.40─(四捨五入)→7(=7)│
  └──────────────────────────────────┘
逆のケース(割ってから掛ける)だと、復元できないものがすぐみつかるのにだ。
  ┌──────────────────────────────────┐
  │7─(÷1.08)→6.48─(四捨五入)→6─(×1.08)→6.48─(四捨五入)→6(≠7)│
  └──────────────────────────────────┘

何か数学的法則性があるのだろうか?
分類:【未解決】
jQuery/同期にする
2017年02月07日
jQueryでAjaxを非同期でなくする(同期にする)方法。
(同期の時点でAjax(Asynchronous)でないというツッコミはなしで)
┌─────────┬────────────────────────────┐
│同期にする        │$.ajaxSetup({async:false});                             │
├─────────┼────────────────────────────┤
│非同期にする(既定)│$.ajaxSetup({async:true});                              │
└─────────┴────────────────────────────┘
とにかく非同期であっちゃこっちゃ処理が動くのが嫌な場合、直列処理にできる。
分類:jQuery
PHP/再帰的なmkdir
2017年01月31日
Linux上のPHPにおいての話。

mkdir()の第三引数にTRUEを指定すると
「mkdir -p」コマンド相当のmkdir()を実行できる。
つまり、「mkdir(第一階層/第二階層)」と指定した場合、
第一階層がないとエラーとなるが、
「mkdir(第一階層/第二階層,,TRUE)」と指定すれば、
(第二階層に加え)第一階層もmkdir()してくれる。
分類:PHP
PHP/mkdirのパーミッション指定の注意点
2017年01月30日
Linux上のPHPにおいての話。

mkdir()の第二引数にパーミッション(0777など)を指定できるが
「umask」設定の影響を受けるので、その直後にchmod()で設定し直す方が安全である。

「umask」設定値は、「umask」コマンドで確認できる

umask()で、「umask」設定自体を変更することもできるが
元に戻す必要があったり、他への影響も大きいのでこちらは避けた方がよい。
→chmod()の方を推奨
分類:PHP
PostgreSQL/トランザクション中のエラーメッセージ
2017年01月20日
トランザクション中で何らかの例外が発生すると、
後続のSQL文が軒並みエラー(中止)となってロールバックへ突き進む。

この場合、後続のSQL文ごとに以下のようなメッセージが出力される。
┌──────────────────────────────────────┐
│current transaction is aborted,                                             │
│commands ignored until end of transaction block                             │
├──────────────────────────────────────┤
│現在のトランザクションは中止され、                                          │
│トランザクションブロックの終了までコマンドは無視されます                    │
└──────────────────────────────────────┘
上記のようにGoogle翻訳すると意味はわかり、
正常なメッセージであることが認識できるのだが
勘違いして「end of transaction block」(トランザクションの末尾)が
「ignored」(見当たらない←明らかな誤訳)と誤ってとらえてしまい
トランザクション処理の構造がおかしいとあわてないように!(←実体験)
分類:PostgreSQL
ExcelVBA/MSSQL小数のプレースホルダ
2017年01月17日
┌──────────────────────────────────────┐
│CREATE PROCEDURE [dbo].[PROCEDURE_小数]                                     │
│    @引数小数               [decimal](8, 2)                                 │
└──────────────────────────────────────┘
MSSQLのストアドプロシージャの引数をdecimal型の小数で定義した場合
ExcelVBAのプレースホルダ的には、以下のような形式で値を指定してあげる。
┌──────────────────────────────────────┐
│Dim SQLコマンド As New ADODB.Command                                        │
│With SQLコマンド                                                            │
│    .ActiveConnection = mデータベース                                       │
│    .CommandType = adCmdStoredProc                                          │
│    .CommandText = "PROCEDURE_小数"                                         │
│    .NamedParameters = True                                                 │
│    .Parameters.Append .CreateParameter("@引数小数", adDecimal, adParamInput)
│    With .Parameters("@引数小数")                                           │
│        .Precision = 8                                                      │
│        .NumericScale = 2                                                   │
│    End With                                                                │
│    .Execute                                                                │
└──────────────────────────────────────┘
分類:ExcelVBA、MSSQL
消費税の端数処理
2017年01月16日
小数を四捨五入した税込金額(税率は8%)があった場合、
1.08で割って「小数を四捨五入する」と、元の値に戻るようだ。

ちなみに小数を切り上げした税込金額(税率は8%)があった場合、
1.08で割って「小数を切り捨てする」と、元の値に戻るようだ。

さらに小数を切り捨てした税込金額(税率は8%)があった場合、
1.08で割って「小数を切り上げる」と、元の値に戻るようだ。

乗算した端数処理と除算した端数処理が同じなら
元の値に戻るような何か理論でもあるのだろうか?
#例外がみつからないだけ?

ちなに税込7円を1.08で割って6.48円として、小数を四捨五入すると税抜6円となり
これを1.08でかけても6.48円で、小数を四捨五入しても7円にはならず6円のままとなる
分類:経営学
PHP/未定義変数のNULL化
2017年01月12日
未定義の変数をエラーを伴わずに「NULL」に置き換える方法
┌──────────────┬───────────────────────┐
│isset($変数) ? $変数 : NULL │基本だが、「$変数」を二回記述で冗長的         │
├──────────────┼───────────────────────┤
│$変数 ?? NULL               │PHP7.0以降で使用可能(*1)                      │
├──────────────┼───────────────────────┤
│!empty($変数) ? $変数 : NULL│NULL・0・空文字などもNULLになる               │
├──────────────┼───────────────────────┤
│!$変数 ? $変数 : NULL       │empty()と同じでNULL・0・空文字などもNULLになる│
├──────────────┼───────────────────────┤
│@$変数                      │簡潔だが、エラー制御演算子(@)は避けた方がよい │
└──────────────┴───────────────────────┘
  *1:「isset($変数) ?? $変数」と誤認しがちなので注意
      もし誤用すると「isset()」の結果(「TRUE」か「FALSE」)がそのまま返却される

$_GET['xxx']、$_POST['xxx']などでも使える。
分類:PHP
前へ 1 … 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 … 156 次へ