bugfix> javascript > 投稿

温度から変換する関数は以下に書かれています

function tryConvert(temperature, convert /*callback*/) {
  const input = parseFloat(temperature);
  if (Number.isNaN(input)) {
    return '';
  }
  const output = convert(input);
  const rounded = Math.round(output * 1000) / 1000;
  return rounded.toString();
}

私の質問はこの行です:

 const rounded = Math.round(output * 1000) / 1000;

なぜ1000倍する必要があるのですか?また、結果を1000で割る?

回答 2 件
  • 1000で乗算すると、小数点が3桁右に移動します。 5.333333 => 5333.333

    整数に整数を丸めます。 (小数点以下はゼロのみ) 5333.333 => 5333.000

    その後、1000で除算すると、小数点が開始位置に戻ります。 5333.000 => 5.333000

    その結果、数値は小数点以下3桁に丸められます。 5.333333 => 5.333000

  • output を切り上げることです  3桁まで:

    例:

    const rounded = Math.round(1.23456 * 1000) / 1000; // = 1.235
    console.log(rounded);
    
    

あなたの答え