From 70b1a29165867643e961ceef27592349a122ab7c Mon Sep 17 00:00:00 2001 From: xuri Date: Thu, 21 Mar 2019 14:09:25 +0800 Subject: [PATCH] Use bitSize for float32 type numbers conversion, relate PR #361 --- cell.go | 16 +++++++++------- cell_test.go | 2 +- date_test.go | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/cell.go b/cell.go index 3a3474f..a3a1c19 100644 --- a/cell.go +++ b/cell.go @@ -143,18 +143,20 @@ func (f *File) SetCellBool(sheet, axis string, value bool) { } // SetCellFloat sets a floating point value into a cell. The prec parameter -// specifies how many places after the decimal will be shown while -1 -// is a special value that will use as many decimal places as necessary to -// represent the number. bitSize is 32 or 64 depending on if a float32 or float64 -// was originally used for the value -// var x float32 = 1.325 -// f.SetCellFloat("Sheet1", "A1", float64(x), 2, 32) +// specifies how many places after the decimal will be shown while -1 is a +// special value that will use as many decimal places as necessary to +// represent the number. bitSize is 32 or 64 depending on if a float32 or +// float64 was originally used for the value. For Example: +// +// var x float32 = 1.325 +// f.SetCellFloat("Sheet1", "A1", float64(x), 2, 32) +// func (f *File) SetCellFloat(sheet, axis string, value float64, prec, bitSize int) { xlsx := f.workSheetReader(sheet) cellData, col, _ := f.prepareCell(xlsx, sheet, axis) cellData.S = f.prepareCellStyle(xlsx, col, cellData.S) cellData.T = "" - cellData.V = strconv.FormatFloat(value, 'f', prec, 64) + cellData.V = strconv.FormatFloat(value, 'f', prec, bitSize) } // SetCellStr provides a function to set string type value of a cell. Total diff --git a/cell_test.go b/cell_test.go index ba326d9..12efc17 100644 --- a/cell_test.go +++ b/cell_test.go @@ -66,7 +66,7 @@ func TestSetCellFloat(t *testing.T) { func ExampleFile_SetCellFloat() { f := NewFile() - var x float64 = 3.14159265 + var x = 3.14159265 f.SetCellFloat("Sheet1", "A1", x, 2, 64) fmt.Println(f.GetCellValue("Sheet1", "A1")) // Output: 3.14 diff --git a/date_test.go b/date_test.go index 709fb00..3ec0b69 100644 --- a/date_test.go +++ b/date_test.go @@ -38,14 +38,14 @@ func TestTimeToExcelTime(t *testing.T) { } func TestTimeToExcelTime_Timezone(t *testing.T) { - msk, err := time.LoadLocation("Europe/Moscow") + location, err := time.LoadLocation("America/Los_Angeles") if !assert.NoError(t, err) { t.FailNow() } for i, test := range trueExpectedDateList { t.Run(fmt.Sprintf("TestData%d", i+1), func(t *testing.T) { assert.Panics(t, func() { - timeToExcelTime(test.GoValue.In(msk)) + timeToExcelTime(test.GoValue.In(location)) }, "Time: %s", test.GoValue.String()) }) }