]> Cypherpunks repositories - gostls13.git/commitdiff
fmt: %b for complex64 and complex128
authorRob Pike <r@golang.org>
Sun, 15 Sep 2013 00:45:36 +0000 (10:45 +1000)
committerRob Pike <r@golang.org>
Sun, 15 Sep 2013 00:45:36 +0000 (10:45 +1000)
Just an oversight they were missing.
Fixes #6387

R=golang-dev, dominik.honnef, rsc
CC=golang-dev
https://golang.org/cl/13715043

src/pkg/fmt/fmt_test.go
src/pkg/fmt/format.go
src/pkg/fmt/print.go

index 199f337ec272183bc41fbf29ee12054d0b8bb3e5..f32c05dc062b2aa3fa4ff743b60cdee1dfb4ab60 100644 (file)
@@ -227,6 +227,8 @@ var fmtTests = []struct {
        {"%+.3g", -1.0, "-1"},
        {"% .3g", -1.0, "-1"},
        {"% .3g", 1.0, " 1"},
+       {"%b", float32(1.0), "8388608p-23"},
+       {"%b", 1.0, "4503599627370496p-52"},
 
        // complex values
        {"%+.3e", 0i, "(+0.000e+00+0.000e+00i)"},
@@ -247,6 +249,8 @@ var fmtTests = []struct {
        {"% .3E", -1 - 2i, "(-1.000E+00-2.000E+00i)"},
        {"%+.3g", complex64(1 + 2i), "(+1+2i)"},
        {"%+.3g", complex128(1 + 2i), "(+1+2i)"},
+       {"%b", complex64(1 + 2i), "(8388608p-23+8388608p-22i)"},
+       {"%b", 1 + 2i, "(4503599627370496p-52+4503599627370496p-51i)"},
 
        // erroneous formats
        {"", 2, "%!(EXTRA int=2)"},
index 736e2bd7153e0891a49965d12d554a20d534ad78..2e2b0716edc822e4486415580c673da6280311d2 100644 (file)
@@ -429,6 +429,8 @@ func (f *fmt) fmt_c64(v complex64, verb rune) {
        oldPlus := f.plus
        for i := 0; ; i++ {
                switch verb {
+               case 'b':
+                       f.fmt_fb32(r)
                case 'e':
                        f.fmt_e32(r)
                case 'E':
@@ -457,6 +459,8 @@ func (f *fmt) fmt_c128(v complex128, verb rune) {
        oldPlus := f.plus
        for i := 0; ; i++ {
                switch verb {
+               case 'b':
+                       f.fmt_fb64(r)
                case 'e':
                        f.fmt_e64(r)
                case 'E':
index 99b2d5cb03aed281823db4d030e8837eeb7eb713..14cda03b9e5d0edc9b4291ac3b44c7d587ff719d 100644 (file)
@@ -511,7 +511,7 @@ func (p *pp) fmtFloat64(v float64, verb rune) {
 
 func (p *pp) fmtComplex64(v complex64, verb rune) {
        switch verb {
-       case 'e', 'E', 'f', 'F', 'g', 'G':
+       case 'b', 'e', 'E', 'f', 'F', 'g', 'G':
                p.fmt.fmt_c64(v, verb)
        case 'v':
                p.fmt.fmt_c64(v, 'g')
@@ -522,7 +522,7 @@ func (p *pp) fmtComplex64(v complex64, verb rune) {
 
 func (p *pp) fmtComplex128(v complex128, verb rune) {
        switch verb {
-       case 'e', 'E', 'f', 'F', 'g', 'G':
+       case 'b', 'e', 'E', 'f', 'F', 'g', 'G':
                p.fmt.fmt_c128(v, verb)
        case 'v':
                p.fmt.fmt_c128(v, 'g')