通貨レート変換機能のバグを修正

オンライン文章校正支援サービス「PRUV」の通貨レート変換機能のバグを修正しました。

1兆以上の桁を正しく処理できておらず、「1兆ドル」と入力したときの日本円を「1104800億円」のように表示していました。

今回の修正で、正しく「110兆4800億円」と表示するようになりました。

通貨レート変換時は、金額を数値に変換して計算し、改めて漢字交じりの文字列に戻しています。1兆ドル(1000000000000)に通貨レートを掛けて110480000000000にし、この桁数を調べて億や兆といった漢字に置き換えるわけです。このときPHPが数値を自動的に科学記法(指数表現)「1.1048E+14」にしてしまうため、単純に桁数をカウントすると15桁(文字)ではなく10文字になってしまい、「兆」を入れる処理がパスされてしまいました。

科学記法を数値に戻す処理を加えたことにより、無事解決しました。Appleが1兆ドル企業にならなければ(結構前の話ですが……)、このバグに気付かなかったことでしょう。

行末の単語がズレる問題を解消

オンライン文章校正支援サービス「PRUV」の不具合(?)を1つ解決しました。

文章を解析すると、右側に解析した文章を出力します。この文章の右端(行末)にマウスを近づける(オンマウスとか、ホバーといいます)と、改行位置がズレて最後の文字や単語が次の行にピョコッと移動してしまうのです。

これだけなら無様なだけですが、ここにマーキング(何らかの指摘)が発生すると厄介です。指摘を確認するためマーキングされた単語をクリックしようとすると、その単語が次行に移動してしまう。移動先にマウスを動かすと、その単語は元の位置にピョコッと戻ってしまう。これではクリックできない!

Chromeはオンマウス時に要素が1ピクセルズレるそうです。そこでaタグに

display: inline-block;

を指定することで解消しました。

かなり初期から悩んでいたのですが、調べてみると意外に簡単な原因&解決方法でした。もっと早くやればよかった。




括弧閉じ(右括弧)不足時に問題箇所の強調表示が機能しない

オンライン文章校正支援サービス「PRUV」、サービス開始2日目にして早くもバグ修正報告です。

括弧の対応チェック時、括弧閉じ(右括弧)不足を検出すると発生していたものです。括弧開き(左括弧)を強調表示し、対応する括弧閉じが存在しないことを示す仕様であるにもかかわらず、強調表示されていませんでした。

「「」に対応する「」」が足りません。

と指摘はしていたものの、強調表示されていなかったので問題箇所が非常に分かりにくい状態でした。

現在、この問題は解決済みです。