A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
JavaScript の関数 parseInt は、
Unicode ブロック「基本ラテン文字」の文字のみを対象としているので、
Unicode ブロック「半角・全角形」の文字は変換できません。
そのため、
以下の仕様により、文字列から数値 NaN に変換され、
> 第1引数の初めの文字が数値に変換できないときは、parseInt()関数はNaNを返します。
出典: https://developer.mozilla.org/ja/docs/Web/JavaSc …
以下の仕様により、数値から文字列 "NaN" に変換され、画面表示されます。
> 1. If m is NaN, return the String "NaN".
出典: http://www.ecma-international.org/ecma-262/6.0/# …
対策としては、
基本ラテン文字以外で入力される可能性がある数字すべてを、
基本ラテン文字に修正する仕組み用意するのが一般的です。
例) 半角・全角形の数字を修正してから parseInt 変換
var fixNumericChars = (v) => v.replace(/[0-9]/g,v=>"0123456789".indexOf(v));
var n = parseInt( fixNumericChars(ans), 10 );
Unicode には他にも数字が多々ありますので、用途に照らし合わせて修正対象をご検討ください。
https://en.wikipedia.org/wiki/Number_Forms
https://en.wikipedia.org/wiki/Enclosed_Alphanume …
https://en.wikipedia.org/wiki/Ancient_Greek_Numb …
https://en.wikipedia.org/wiki/Cuneiform_Numbers_ …
No.2
- 回答日時:
parseIntは変換できなかった時にNaN(Not a Number)を返却します。
それがalertで文字としてのNaNに変換されて出力されています。
NaNと何かを数値演算を行うといかなる場合もNaNになりますので、何かの値で上書きしてあげない限りalertにはNaNが出力されます。
以下の様な方法で半角文字に変換してからparseIntを行ってください。
■JavaScript 文字列 全角を半角に 半角を全角に変換する方法
http://kazunori-lab.com/uchikikase/?p=955
No.1
- 回答日時:
ご回答ありがとうございます
promptの戻り値は文字列型
parseIntは全角の数字もそのまま通すので、半角への変換は行われない
というのは調べてわかったのですが、alertでの結果がNot a Numberになるのは理解できません
また、promptに全角の文字列を入れ、戻り値に✕1などの演算を入れることで、数値への暗黙の型変換がおこなれるはずですが、それも行われません。
何故ですか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- 数学 paythonを使用した周回積分に関する質問です。 2 2023/02/17 19:09
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
substring バイト単位でやりたい
-
Path型をString型へ変換する(Java)
-
javaでのOracleのデータ登録の...
-
文字列の比較
-
JavaのStringクラスに「外字」...
-
javaで「全角が含まれているか...
-
下記問題の答えが"D"になる意味...
-
javaの初歩的な質問です。
-
世界測地から日本測地への変換...
-
javascriptで文字列のsjis利用...
-
文字コード変換
-
replace関数で複数の文字の変換...
-
C言語32bitから64bitの移行につ...
-
カタカナをローマジに変換する。
-
Windows-31Jからutf-8への変換...
-
全角英数字とハイフンを半角に...
-
COBOLで半角カナを全角カナに変換
-
int型のゼロ埋め
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
byte[] を long,float とかに...
-
C言語32bitから64bitの移行につ...
-
JavaのStringクラスに「外字」...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
[Javascript]エンターキー押下...
-
下記問題の答えが"D"になる意味...
-
エクセルVBAで「〜」が表現でき...
-
byte配列をImageに変換する
-
javaで「全角が含まれているか...
-
IBM漢字コード⇒SJIS変換方法
-
Windows-31Jからutf-8への変換...
おすすめ情報