hnwの日記

2014-01-01から1ヶ月間の記事一覧

Monoで巨大な浮動小数点数を丸めたら無限大になった

Monoのround関数にバグを見つけたよ、という毎度おなじみの話題です。 早速ですが、浮動小数点数で扱える一番大きい数を浮動小数点数以下第2位で丸めて第1位までにしてみましょう。 using System; class RoundingBigFloat { static void Main() { double d =…

Emacsでスクリプトをセーブするときに勝手に実行権限をつける方法

Emacsでシェルスクリプトなどを書いているとき、ファイルセーブのタイミングでchmod u+xする方法を紹介します。実は「EmacsWiki: Making Scripts Executable On Save」の内容そのままです。 やり方は、init.elに下記のように書くだけです。 ;; スクリプトっ…

Emacs起動時に自分好みのelispを自動的にインストールする

(2015/04/27追記)Emacs24.4付属のpackage.elでは「野良elispをpackage-installする」が動かなくなっていました。中の人が想定してない使い方で頑張るより、必要なものはMELPAにぶっこんでいくスタイルの方が正しい気がしますね…。 自宅と会社など、複数環…

Emacsで一度開いたファイルのカーソル位置を覚えておく

タイトルの通りなんですが、init.elに下記のように書くと一度開いたファイルのカーソル位置を記憶し、再度開いたときに元のカーソル位置を復元してくれます。 ;; 以前開いたファイルを再度開いたとき、元のカーソル位置を復元する ;; http://www.emacswiki.o…

Mono環境のC#はdecimal型を正しく丸められない

Mono環境のC#において、decimal型リテラルもしくはdecimal型の演算中にdecimal型の精度を超えた場合に、最近接の数に丸められないバグと偶数丸めのはずが四捨五入になるバグを見つけました。 using System; class DecimalTest { static void Main() { decima…

C#のdecimalからdoubleへのキャストにバグを見つけた気がする

C#の丸めは基本的に偶数丸め(banker's rounding)だというのが僕の認識ですが、decimalの数をdoubleにキャストするときに四捨五入になる例がありました。また、.NET環境に限り最近接のdoubleに丸められない例も見つけました。 decimalからdoubleへのキャス…