Browse Source

Use bitSize for float32 type numbers conversion, relate PR #361

xuri 6 years ago
parent
commit
70b1a29165
3 changed files with 12 additions and 10 deletions
  1. 9 7
      cell.go
  2. 1 1
      cell_test.go
  3. 2 2
      date_test.go

+ 9 - 7
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

+ 1 - 1
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

+ 2 - 2
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())
 		})
 	}