1

私が取り組んでいる簡単な問題は、300m を数秒で走り、それを文字列に変換して "9:99.99" と表示することです。秒を取得するには、次の MOD 操作を実行します。

sec = result % 60;

これは、小数部分が 0.5 (つまり、60.5、75.5 など) でない限り、期待どおりに機能しません。他の小数では、表現するのに 12 桁以上の有効数字が必要な結果が得られます。

たとえば、64.55 % 60 は、結果として 4.5499999999999997 を返します。

簡単な解決策は、小数で分割し、結果を小数点以下の桁数で連結することだと知っていますが、これはただ興味をそそられます。MOD だけを使用してこれを修正する良い方法はありますか?

4

1 に答える 1

1

したがって、値が 921.856 秒であると仮定します。

var value = 921.856;
var minutes = Math.floor(value/60),  // 15        
    seconds = value % 60,            // 21.856
    time = minutes + ":" + seconds.toFixed(2);  // 15:21.86

丸めずに行うには:

time = minutes + ":" + (Math.floor(seconds * 100)/100).toFixed(2); // 15:21.85
于 2013-05-09T15:28:51.090 に答える