diff options
| author | a1xd <[email protected]> | 2020-12-15 19:53:47 -0500 |
|---|---|---|
| committer | a1xd <[email protected]> | 2020-12-15 19:53:47 -0500 |
| commit | 95ad0545470dee98ab7a34aa10289d4ca12c2b37 (patch) | |
| tree | 744d59ee4eda7791a3f1b90c14a5b579bd6ff2a7 | |
| parent | Merge pull request #48 from a1xd/improve-docs (diff) | |
| download | rawaccel-95ad0545470dee98ab7a34aa10289d4ca12c2b37.tar.xz rawaccel-95ad0545470dee98ab7a34aa10289d4ca12c2b37.zip | |
fallback on invariant format when parsing fields
by invariant meaning english-based number style, with period char as decimal separator
| -rw-r--r-- | grapher/Constants/Constants.cs | 4 | ||||
| -rw-r--r-- | grapher/Models/Fields/Field.cs | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/grapher/Constants/Constants.cs b/grapher/Constants/Constants.cs index d669d25..5bee626 100644 --- a/grapher/Constants/Constants.cs +++ b/grapher/Constants/Constants.cs @@ -1,4 +1,5 @@ using System.Drawing; +using System.Globalization; namespace grapher { @@ -110,6 +111,9 @@ namespace grapher /// <summary> Default name of settings file. </summary> public const string DefaultSettingsFileName = @"settings.json"; + /// <summary> Style used by System.Double.Parse </summary> + public const NumberStyles FloatStyle = NumberStyles.Float | NumberStyles.AllowThousands; + #endregion Constants #region ReadOnly diff --git a/grapher/Models/Fields/Field.cs b/grapher/Models/Fields/Field.cs index 345f814..6f15525 100644 --- a/grapher/Models/Fields/Field.cs +++ b/grapher/Models/Fields/Field.cs @@ -1,5 +1,6 @@ using System; using System.Drawing; +using System.Globalization; using System.Windows.Forms; namespace grapher @@ -274,9 +275,15 @@ namespace grapher } } + public static bool TryParse(string s, out double res) + { + return double.TryParse(s, Constants.FloatStyle, NumberFormatInfo.CurrentInfo, out res) || + double.TryParse(s, Constants.FloatStyle, NumberFormatInfo.InvariantInfo, out res); + } + private void TextToData() { - if (double.TryParse(Box.Text, out double value) && + if (TryParse(Box.Text, out double value) && value <= MaxData && value >= MinData) { _data = value; |