-2

私の質問は今です:

37.5 を含む変数 M があります (ご覧のとおり、整数です)。

Mを文字列「37.5」になるように変換したい

したがって、37.5 は「37.5」になるはずです。

関数で試します:

 M2=integer_to_list(M)

しかし、この関数を実行すると、次のエラーが表示されます。

** exception error: bad argument
     in function  integer_to_list/1
        called as integer_to_list(37.5)
4

2 に答える 2

1

@chops には IMO (mochinum:digits/1 を使用) という優れた回答がありますが、io_lib モジュールを見ることで何かを得られるかもしれません。例えば:

8> io_lib:format("~.2f",[37.5]).
 ["37.50"]

9> io_lib:format("~.1f",[37.5]).
 ["37.5"]

これはまさにあなたが探しているものではないかもしれません。この場合、mochinum モジュールを見たり使用したりするのが効率的な方法だと思いますが、io_lib は見落とされることが多く、リストをフォーマットするための非常に便利な関数セットを提供します /文字列

于 2013-01-09T13:43:56.243 に答える
1

37.5 は整数ではなく浮動小数点であるため、integer_to_list はその状況では機能しません。Erlang には float_to_list がありますが、通常、出力はかなり使い物になりません。

代わりに、フロートをリストにきれいに変換するために mochiweb プロジェクトを調べることをお勧めします。特に、mochinumモジュール:

> M = 37.5,
> mochinum:digits(M).
"37.5"
于 2013-01-09T12:53:41.063 に答える