在 C# 中将字符串转换/解析为 ulong 并保持精度的最佳方法是什么?
直接转换是不可能的,并且 Convert 类实用程序不提供 ulong 转换,
所以我使用了一个中间十进制变量,但我失去了精度。
decimal d = Decimal.Parse("1.0316584"));
Console.Write(d) // displays 1.0316584
ulong u = (ulong)d;
Console.Write(u) // displays 1 , precision is lost
我第一次尝试使用长解析器,但被淘汰了:
long l = Int64.Parse("1.0316584")); // throws System.FormatException
编辑:
好的,对不起,我的错:我的问题很糟糕。 “long”在 C# 中确实是一个整数我对其他以前使用的语言感到困惑。另外,我不得不使用 ulong,因为这是我正在使用的第三方代码请求。所以答案中建议的乘数确实是可行的方法
最佳答案
ulong
是一个整数类型,对于小数/小数值永远不能有任何精度。
关于时间:: string to ulong conversion keeping precision,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157521/