print(String(Float(2 * (10/9))))
なぜこのコードは "2.0"を出力しますか?電卓を使用して
、 "2 *(10月9日)は、" Float
になるあなたは整数で計算している2.222222 .....浮動小数点数式が期待通りに機能しない
print(String(Float(2 * (10/9))))
なぜこのコードは "2.0"を出力しますか?電卓を使用して
、 "2 *(10月9日)は、" Float
になるあなたは整数で計算している2.222222 .....浮動小数点数式が期待通りに機能しない
等しく、(整数)をキャストします。
代わりに浮動小数点型(Double
)を使用して計算ください:
print(String(Float(2.0 * (10.0/9.0))))
しかしキャストする必要はありません:
print(2.0 * (10.0/9.0))
2.0 *は(10.0/9.0)あなたの期待される結果を与えるだろう。あなたのケースで
、スウィフトは、第一(結果= 2)、文字列(結果=「2.0」)にフロート(結果= 2.0)に変換し、これ
の整数に基づく計算を行います正しい結果を得る、それは読んでください:
print(String(Float(2.0 * (10.0/9.0))))
をあなたは、2人のタイプの会話を残すことができる:
print(2.0 * (10.0/9.0))
@MartinRは(私がいることを前提とし、私は数週間前直面した問題に関連して、このですあなたは忘れましたotについて)、浮動小数点数は科学的表記法として表されますか? –
@AhmadF:申し訳ありませんが、あなたが話している問題は分かりません。しかし、これは浮動小数点数や科学記法とは無関係です。 '10/9'は整数除算であり、Swiftや他の多くのプログラミング言語では' 1'と評価されます。 –
@MartinRご回答いただきありがとうございます。私の問題は、 "。"の後の桁数をどのように数えることができるかということでした。 (右側の)浮動小数点数で、あなたとロブはそれが不可能であると言ってくれました - ありがたいことに - 私の質問は[this one]に重複しているとマークされています(http://stackoverflow.com/questions/588004/is-floating-ポイント - 数学 - 壊れた)。 –