Erlang: использование io_lib для преобразования float в строку [duplicate]

Вот как экспортировать тот же путь, что и книга:

Sub Export()
Dim ws As Worksheet
Dim Rng As Range
Dim Chrt As Chart
Dim ExportPath As String

Set ws = ActiveSheet
Set Rng = ws.Range("B2:H11")
ExportPath = ThisWorkbook.Path & "\Case.jpg"

Set Chrt = ThisWorkbook.Charts.Add
Rng.CopyPicture xlScreen, xlBitmap   

With Chrt
    .Paste
    .Export FileName:=ExportPath, Filtername:="JPG"
End With
End Sub
10
задан mskfisher 14 May 2012 в 14:55
поделиться

5 ответов

Вы ищете что-то вроде этого:

6> F = 5/2.
2.50000
7> io_lib:format("~.1f",[F]).
["2.5"]
8> io_lib:format("~.2f",[F]).
["2.50"]
9> io_lib:format("~.3f",[F]).
["2.500"]

, если да, посмотрите на модуль io_lib.

24
ответ дан enokd 21 August 2018 в 01:24
поделиться
  • 1
    +1 для того, чтобы быть единственным ответом, упоминающим io_lib - вещь, которая форматирует строки (aka lists), вместо того, чтобы просто печатать вывод, подобный io. – ndim 24 October 2010 в 04:35
  • 2
    Спасибо за помощь! – BAR 24 October 2010 в 17:11
  • 3
    @ndim Не единственный ответ :( – user 24 October 2010 в 17:18
  • 4
    @pst Тем не менее, единственный ответ, упоминающий io_lib, на данный момент. – ndim 24 October 2010 в 17:23

mochinum:digits преобразует float в строку с соответствующим уровнем точности.

1> mochinum:digits(1.1).
"1.1"
2> mochinum:digits(1.2345).
"1.2345"

Не совсем то, что запросил OP, но тем не менее полезен.

3
ответ дан afternoon 21 August 2018 в 01:24
поделиться

Эта ссылка предоставляет функции, которые усекают / перекрывают или перекрывают или обтекают поплавок. Учитывая, что вы можете округлить до двух цифр, умножив их на 100, свернув, а затем разделив назад на 100 (и, возможно, снова округляя во избежание ошибок точности)

0
ответ дан Armen Tsirunyan 21 August 2018 в 01:24
поделиться

В качестве альтернативы вы можете использовать функцию, которую вы уже использовали.

float_to_list(0.02,[{decimals, 2}]) выводит «0.02»

Или для пользователей Elixir;)

:erlang.float_to_list(5.231,[{:decimals, 2}]) выходы «5.2»

2
ответ дан Code Novitiate 21 August 2018 в 01:24
поделиться

Я знаю, что людям не нравятся ответы «Я не эксперт в языке X», но команда printf довольно вездесущая, поэтому я скажу, ищите аналог printf в Erlang.

Изменить: похоже, формат и fwrite могут быть этими аналогами. Для получения дополнительной информации из erlang.org .

0
ответ дан Joel Berger 21 August 2018 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: