エリクシル指数を整数に変換するにはどうすればよいですか?指数表記のエリクシール数を整数に変換する
1.0e2
のようなものを100
に変換したいと思います。 私は解決策を探していましたが、見つけられませんでした。あなたは指数は時々も指数表記と呼ばれる、本当にscientific notationで書かれただけの浮動小数点数で呼び出す何
エリクシル指数を整数に変換するにはどうすればよいですか?指数表記のエリクシール数を整数に変換する
1.0e2
のようなものを100
に変換したいと思います。 私は解決策を探していましたが、見つけられませんでした。あなたは指数は時々も指数表記と呼ばれる、本当にscientific notationで書かれただけの浮動小数点数で呼び出す何
。実際の指数は実際にはこの全体の一部です。一緒に、それは私たちが便利な、非常に大きな及び/または小さな数字を表現することができます仮数と:
mantissa * (10^exponent)
のでエリクサーで、他の多くの言語のように、数1.23 * (10^5)
は1.23e5
のように記述することができます。あなたがiex
にあなたの例番号1.0e2
を入力した場合、あなたはそれが浮動小数点数の上だけの利便性が本当にあることがわかります。
iex> 1.0e2
100.0
そこで質問は本当にする必要があります:「どのように私はfloat型に変換します整数?"。これに対する答えは、あなたがこれを達成するために、以下の機能のいずれかを使用することができるということです。
Kernel.round/1
- 小数点Float.round/2
後のドロップ桁 - - ラウンドKernel.trunc/1
精度Float.floor/2
とラウンド - 精度で切り上げるFloat.ceil/2
- 精度を切り捨てます。Kernel
の機能はallowed in guard testsです。電話をかけるには、Kernel.
を手前に置く必要はありません。 Float
関数では、さらに、小数点以下の桁数を保持するために精度を指定することができます。あなたの例では、100.0
は整数なので、どちらを使うかは問題ではありません。しかし、最善の異なる数で示されている上記の機能の動作は、1.55
を言う:
iex> round(1.55)
2
iex> trunc(1.55)
1
iex> Float.round(1.55)
2.0
iex> Float.round(1.55, 1)
1.6
iex> Float.floor(1.55)
1.0
iex> Float.floor(1.55, 1)
1.5
iex> Float.ceil(1.55)
2.0
iex> Float.ceil(1.55, 1)
1.6
徹底的な対応に感謝します! –
あなたは 'TRUNC(数を)'使用することができ、それは整数に指数表記で数値を変換しますが判明します。 'trunc(1.0e2)=> 100' 注 - これは10進数を切り捨てるので、floatでは機能しません。 –
'1.0e2'は浮動小数点です。 「100」は整数である。あなたはfloatからintに変換しようとしていますか? – jdl