将十进制数字格式化为字符串,使用逗号作为球拍中的小数分隔符

时间:2017-04-26 08:26:10

标签: racket

是否有球拍lang中的任何功能,提供十进制数转换为自定义格式的字符串?

我需要将十进制格式化为格式化为货币样式的字符串吗?

示例:值100.1应变为“100,10 CZK"

2 个答案:

答案 0 :(得分:2)

查看~r自定义数字格式。使用regexp-replace以逗号替换句点。

http://docs.racket-lang.org/reference/strings.html?q=~n#%28def._%28%28lib.racket%2Fformat..rkt%29.~7er%29%29

答案 1 :(得分:1)

您可以实现以下功能:

(define (decimal->string val curr)
  (let ([lst (regexp-split #rx"\\." (~a val))])
    (string-append
     (car lst) "," (~a (cadr lst) #:min-width 2 #:pad-string "0") " " curr)))

例如,

> (decimal->string 100.1 "CZK")
"100,10 CZK"