我这里有代码,会将 String
值转换为 Double
,并带有2位小数。
当 myStrValue
820
时,最终结果为 8.2
- which is wrong result
应该 8.20
我的代码在这里:
string myStrValue = "820";
double myDblValue = Convert.ToDouble(myStrValue) * 0.01;
double finalValue = Math.Round(myDblValue, 2);
如何纠正?
答案 0 :(得分:2)
最终结果是8.2 - 这是错误的结果它应该是8.20
请不要混淆手边的数字,并在显示时将其表示为字符串。数学上8.2和8.20是相同的数字,并以相同的方式对待。
另一方面,当您决定显示字符串表示时,您将控制字符串表示。
您可以通过不同方式确定显示格式:
finalValue.ToString("0.00");
string rep = $"{finalValue:0.00}";
// and many more, google will find it
所以没有机会把它变成8.20?在double数据类型?
实际上没有,因为在数据类型double
中它保存完全不同,带有指数和尾数。如果您有兴趣,请查看this page
但如果您想使用该数字,它的表示将无效。
因为finalValue + 0.001
会产生8.201
。