将字符串转换为双C#

Cos*_*tel 3 c# double

我有一个特定转换的有趣问题.当我尝试将字符串"0,3""0.3"根据值UICulture转换为Double值时,结果为0,29999999.我还没有找到解决方案,以便收到结果0,3.

转换后有什么方法可以获得相同的值吗?

Mar*_*ell 14

double 不能代表每一个价值.它保证代表整数,但这就是它.如果你需要更像"人类"近似数字的东西,请使用decimal:

decimal val = decimal.Parse("0.3");
Run Code Online (Sandbox Code Playgroud)

注意:decimal 不代表每个值 - 但它的近似方式往往更像人们期望数字的工作方式.特别double是对货币这样的东西几乎没用.