diff --git a/TonSdk.Core/src/Coins.cs b/TonSdk.Core/src/Coins.cs
index 05d56a0..15694c2 100644
--- a/TonSdk.Core/src/Coins.cs
+++ b/TonSdk.Core/src/Coins.cs
@@ -256,12 +256,26 @@ private static bool TryConvertCoinsValue(object value, out decimal result)
result = (decimal)doubleValue;
return true;
}
+ }
+ catch (CultureNotFoundException)
+ {
+ if (decimal.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out result))
+ {
+ return true;
+ }
- return false;
+ double doubleValue;
+ if (double.TryParse(value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out doubleValue))
+ {
+ result = (decimal)doubleValue;
+ return true;
+ }
}
catch {
return false;
}
+
+ return false;
}
private static bool IsCoins(object value) {
@@ -269,12 +283,21 @@ private static bool IsCoins(object value) {
}
private static int GetDigitsAfterDecimalPoint(decimal number) {
- string[] parts = number.ToString(new CultureInfo("en-US")).Split('.');
- if (parts.Length == 2) {
- return parts[1].Length;
+ try
+ {
+ string[] parts = number.ToString(new CultureInfo("en-US")).Split('.');
+ if (parts.Length == 2)
+ return parts[1].Length;
+ else
+ return 0;
}
- else {
- return 0;
+ catch (CultureNotFoundException)
+ {
+ string[] parts = number.ToString(CultureInfo.InvariantCulture).Split('.');
+ if (parts.Length == 2)
+ return parts[1].Length;
+ else
+ return 0;
}
}
diff --git a/TonSdk.Core/test/TonSdk.Core.Tests.csproj b/TonSdk.Core/test/TonSdk.Core.Tests.csproj
index 28e7ed8..5bb4a69 100644
--- a/TonSdk.Core/test/TonSdk.Core.Tests.csproj
+++ b/TonSdk.Core/test/TonSdk.Core.Tests.csproj
@@ -6,6 +6,8 @@
enable
TonSdk.Core.Tests
+ true
+
false
true