From: nobu@... Date: 2020-11-21T13:10:21+00:00 Subject: [ruby-core:101006] [Ruby master Feature#17339] Semantic grouping with BigDecimal#to_s Issue #17339 has been updated by nobu (Nobuyoshi Nakada). Shouldn't `BigDecimal('1234567').to_s('3F')` return `"1 234 567.0"` (without spaces at the beginning and just before the decimal dot), but not `" 1 234 567 .0"`, right? We should consider this statement says nothing about the integer part, I guess now. ---------------------------------------- Feature #17339: Semantic grouping with BigDecimal#to_s https://bugs.ruby-lang.org/issues/17339#change-88675 * Author: chumaltd (Takahiro Chuma) * Status: Open * Priority: Normal ---------------------------------------- # Abstract Thousands, millions, ... should be expressible with `BigDecimal#to_s`. # Background `BigDecimal('1234567').to_s('3F')` returns "123 456 7.0". # Proposal - Have an option with which `BigDecimal('1234567').to_s('3F')` returns " _1 234 567_ .0". - With decimal, `BigDecimal('1234567.8901234').to_s('3F')` should return "1 234 567.890 123 4". - Default behavior should be the above in long term. - And/Or, it would be nice to have a pretty method name. I think #to_s('3F') has universal use cases like money calculation. # Discussion - International System of Units aka SI defines 3-digit-grouping on long numeric sequence. https://www1.bipm.org/jsp/en/ViewCGPMResolution.jsp?CGPM=22&RES=10 - Original discussion in 1948 shows some example of 3-digit-grouping. https://www1.bipm.org/utils/common/pdf/CGPM/CGPM9.pdf#page=117 # Summary We want to have a natural format. -- https://bugs.ruby-lang.org/ Unsubscribe: