D B*_*D B 3 c# type-conversion
我想知道如何将2个价格作为数据类型字符串进行比较.
例;
string oldPrice = "£1.99";
string newPrice = "£2.50";
Run Code Online (Sandbox Code Playgroud)
我想比较newPrice是> = oldPrice但我不确定如何将字符串转换为decimal/int.脱掉£符号.
有任何想法吗?关于如何解决这个问题的提示或技巧?
这应该工作:
string oldPrice = "£1.99";
decimal result = decimal.Parse(oldPrice, System.Globalization.NumberStyles.Currency);
Run Code Online (Sandbox Code Playgroud)
将货币存储double为不是一个好主意,decimal而是使用它更好.十进制类型仅在表示基数为10的数字时更准确(例如,用于货币/财务计算的数字).一般来说,double类型将为任意实数提供至少同样高的精度和明显更高的速度.还检查了这个和这个链接,了解更多的信息在哪里以及何时使用decimal或double.
此外,从检查出@ Triynko的评论在这里:
这就是为什么你使用Decimal的原因:Double的精确度只有16位十进制数字,经过几次算术运算后,错误会迅速累积到足以爬进15,14,13等数字.舍入到"美分"要求在美分数字后至少有一位完全准确的数字,但实际上你应该保留4或5来隔离累积的算术错误,你不能允许它破坏你用来围绕美分的百分之一列.剩下16(总) - 2(美分) - (4或5错误填充)=哦$ $只有7(或更少)可靠的整数位数为您的钱!
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |