jsにおけるパーパーネット()の奇妙な行為

1090 ワード

parseInt(0.00000 06)は6に等しいです.
  • パーミッションInt関数の役割
  • 原因を探究する.
  • 総括原因
  • を改正する.
    背景を検討します.パートナー達が発見されたかどうかは分かりませんが、パーパー秒Int(0.006)やパーパー秒Int(0.0006)などの戻り値は全部必要です.
    0ですが、パーrseInt(0.00000 06)が返した値は奇妙です.
    6,これは一体なぜですか?
    parseInt関数の役割
    まず、PArseIntの役割は何ですか?彼はjs原生の方法で、数字文字列をNumberタイプの数字に転化するためのものです.そして彼は整数部分だけを転化します.
    原因を究める
    私たちが理想的なのはこの小数点を0にすることですが、パー秒Int(0.000006)は6に戻ります.本当にスペクトルから外れています.
    console.log(parseInt(0.006)) //0
    console.log(parseInt(0.0006)) //0
    console.log(parseInt(0.00006)) //0
    console.log(parseInt(0.000006)) //0
    console.log(parseInt(0.0000006)) //6
    
    彼の原因を探ってみました.どこに問題がありましたか?
    parseInt(0.0000006)  //0.000006
    String(0.0000006);  //6e-7
    parseInt(6e-7);  //6
    parseInt(0.0000006)  //6
    
    原因を纏める
    この原因を発見しました.元々は10の-6乗の後、形が複数の形に変わったからです.そしてパー秒Int()で6 e-7の6を返したので、最後に戻った値は6です.
    改正する
    小数点を安全に戻すには、別の方法を使います.
    Math.floor(0.00006);  //0
    Math.floor(0.000006);  //0
    Math.floor(0.0000006);  //0
    
    これであなたの欲しい値が得られます.私は不定時の髪を送ります.勉強中に出会った穴にはまだいくつかの小さな知識があります.好きだったら、私に注目してください.