diff --git a/TIASshot/Utils/IoUtil.cs b/TIASshot/Utils/IoUtil.cs index 3bbd776..95f9d16 100644 --- a/TIASshot/Utils/IoUtil.cs +++ b/TIASshot/Utils/IoUtil.cs @@ -29,7 +29,9 @@ var valStrs = line.Split(','); if (cols == -1) cols = valStrs.Length; else if (cols != valStrs.Length) throw new Exception("cols != valStrs.Length"); - var vals = valStrs.Select(x => double.Parse(x)).ToArray(); + // CSV はピリオド小数で記述される仕様のため,OS ロケールに依存せず解釈する + var vals = valStrs.Select( + x => double.Parse(x, System.Globalization.CultureInfo.InvariantCulture)).ToArray(); arr.Add(vals); } } @@ -56,7 +58,9 @@ var line = ""; for (var col = 0; col < m.Cols; col++) { if (col > 0) line += ","; - line += $"{m.At(row, col):0.0000000}"; + // カンマ小数ロケールでは小数点が列区切りと衝突するため,常にピリオド小数で出力する + line += m.At(row, col).ToString( + "0.0000000", System.Globalization.CultureInfo.InvariantCulture); } writer.WriteLine(line); }