文字列のフォーマット - 浮動小数点区切り文字としてのカンマ
概要
printf("%.1f", 2.0)
これは 2.0 を出力しますが、2,0 が必要です。 区切り文字として , を使用する地域に対してこれをフォーマットする方法はありますか? ただし、この場合はフォーマット文字列にしかアクセスできないため、gsub またはグローバル設定はありません。
解決策
組み込み機能はありませんが、Active Support ライブラリにはいくつかのメソッドがあります
たとえば、ActiveSupport::NumberHelper を使用できます。
require "active_support/dependencies/autoload"
require "active_support/number_helper"
ActiveSupport::NumberHelper.number_to_delimited(0.2, separator: ",")
# => "0,2"
または、数値変換に Ruby コア拡張機能を使用します。
require "active_support/dependencies/autoload"
require "active_support/core_ext/numeric/conversions"
0.2.to_fs(:delimited, separator: ",")
# => "0,2"
I18n ライブラリを使用し、区切り文字や区切り文字などを含む YAML がある場合:
0.2.to_fs(:delimited, locale: :fr)