go
1records := [][]string{
2 {"Sato", "Takesi", fmt.Sprintf("%0.4f", 1.1)},
3 {"Tanaka", "Taro", fmt.Sprintf("%0.4f", 111.2)},
4}
数値も出力するときは文字列ですから、変換する他ないかと思われます。
fmt.Sprintf()関数は、printfのように文字列をフォーマットできます。
また文字列を読み取ったらそれを構造体に移す処理などがあるとfloat型に戻しやすいと思います。
go
1type Data struct{
2 sei string
3 mei string
4 point float64
5}
6//...省略
7records, err := r.ReadAll()
8pdata := make([]Data, len(records))
9for n, v := range records{
10 pdata[n].sei = v[0]
11 pdata[n].mei = v[1]
12 pdata[n].point, _ = strconv.ParseFloat(v[2], 64)
13}
14
データの個数や型が不明な場合はこの方法ではできません。
interface{}型を使うことでもっと抽象的に扱えます。
すべてinterface{}型に格納して、ParseFloatが成功したらなfloat型にして格納
ParseFloatが失敗したならstring型として格納
みたいなことができます。
switch文で型判定をするという特殊なことをしますが、それさえできれば応用の利くプログラムになりそうです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/15 02:16
2016/11/15 04:42