2017-05-26 6 views
0

この操作は、角度付きタイプスクリプト({{(i/5) % 3}})を使用してHTMLファイル内に作成しようとしています。タイプスクリプト内の数字を切り詰めるには

i/5が自然数を返さない場合、それは% 3部分を引き続き操作できません。したがって、問題は次のとおりです。操作のために受け入れられる結果を得るために、i/5をどのように切り捨てることができますか?ところで

は、私は、JavaScriptの機能Math.trunc(i/5)を使用しようとしましたが、私はというエラーを取得:

+0

この質問は活字体とは何の関係もありませんあなたのtypescriptファイルでそれを計算します。 Angularテンプレートと関係があります。タイトルを修正する必要があります。とにかく、テンプレート内で 'Math'(または他のグローバル)を使うことはできません。この場合、 '~~(i/5))%3'を使うことができます。または、TypeScriptファイルで計算します。 –

+0

または '(i - i%1)%3'を使用してください。 –

+0

コンポーネントのロジックを実行し、その結果をテンプレートに表示する方が良いです。つまり、メソッドを定義するか、または数学を行い結果を表示する変数を定義します。あなたはMath。*メソッドにもアクセスできます。 – mok

答えて

1

あなたが望むものかどうか不明です。あなたはDecimalPipeを使用するように試みることができる:

{{((i/5) | number:'1.0-0') % 3}} 

しかし、上記を丸めているように見えます。

2

「未定義のプロパティTRUNCを読み取ることができません」私は質問を理解できませんでした。ただし、 Math.floor(i/5) % 3を試すことができます。負の数で除算すると、誤った結果になります。

+0

テンプレートの中で 'Math'を使うことはできません。 –

1

3つの異なるMath APIを使用できます。

Math.floorは常にあなたの最も小さい番号を与える:

Math.floor(1/5) // 0 
Math.floor(4/5) // 0 

Math.ceilはいつもあなたの最高数を与える:

:恐らくMath.roundあなたが最も近接して1を与え

Math.ceil(1/5) // 1 
Math.ceil(4/5) // 1 

Math.round(1/5) // 0 
Math.round(4/5) // 1 
+0

しかし、テンプレートの中で 'Math'を使うことはできません。 –

0

この質問はTypeScriptとは関係ありません。 TypeScriptは、新しい演算子や関数、または数値を切り捨てる方法を提供しません。 TypeScriptは、JavaScriptの上にある単なるレイヤーです。

これは角度の問題です。テンプレートにMath(他のグローバル変数)を使用することはできません。あなたのオプションは以下のとおりです。

  • (~~(i/5)) % 3
  • (i/5 - (i/5) % 1) % 3
+0

これらのオプションのどれも私のために働いていません。私は最初のもので予期しないトークンを得て、2番目のものは私が最初に持っているエラーを私に与えます。私は3番目に行くだろうが、主な質問はテンプレート上でそれをする方法です。あなたの時間をありがとう、あなたは '数学 'のことについて正しいです。 – RaulGM

関連する問題