Techioz Blog

文字列のフォーマット - 浮動小数点区切り文字としてのカンマ

概要

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)