numberに関するu_7ccのブックマーク (2)

  • 文字列がfloat型に変換可能かどうかを確認する正規表現について訂正と補足 - プログラミングを勉強するブログ

    以前、ある文字列がfloat型に変換可能かどうかを確認する方法を扱った以下の2つの記事を書きました。 isdigit()について - 主にプログラムを勉強するブログ 昨日のエントリの補足+α - 主にプログラムを勉強するブログ これらの記事、特に後者について訂正と補足をしたいと思います。 1年以上前の記事なので今さら訂正、補足をするのはきまりが悪いのですが明らかなミスがありましたので。 2つ目の記事の中で、ある文字列がfloat型に変換可能かどうかを判別する正規表現として re.compile("^\d+(\.\d+)?\Z") というのを書いていますが、これだと負の値がマッチしないというミスがありました。 num_reg = re.compile("^\d+(\.\d+)?\Z") print bool(num_reg.match('-14.1')) # False また'15e-3'と

    文字列がfloat型に変換可能かどうかを確認する正規表現について訂正と補足 - プログラミングを勉強するブログ
    u_7cc
    u_7cc 2014/07/21
    jsなら「/^[+-]?(\d*\.\d+|\d+\.?\d*)([eE][+-]?\d+|)$/ 」でOKだった。
  • JavaScriptのToNumberとparseInt/parseFloatの仕様と実装の違い - 風と宇宙とプログラム

    ECMAScriptの規格書は非常に細部に至るまで細かく仕様が規定されていますが、100%全て正しく実装している処理系は僕の知る限りありません。過去に広まってしまったソフトとの後方互換性を維持するため、あえて仕様にあわせていないのだろうというものもあります。ECMAScriptの規格と各ブラウザのScriptエンジンとの違いは、いずれ機会があればまとめたいと思っていますが、コーナーケース(いわゆる重箱の隅系)になると、膨大な量になります。 今回は、文字列を数値に変換する際に登場するToNumberとparseInt/parseFloatについて簡単に紹介します。ToNumberは規格書に登場する内部の実装関数であり、parseInt/parseFloatはご存知JavaScriptのグローバル関数です。 ToNumberの引数が文字列のとき、規格書ではその文字列の文法が厳密に規定されていて

    JavaScriptのToNumberとparseInt/parseFloatの仕様と実装の違い - 風と宇宙とプログラム
    u_7cc
    u_7cc 2014/07/18
    "+0xF" +-0xffは不正。2014/08現在Opera,Andoroidが実装ミス
  • 1