c# - 将小数转换为不带逗号或点的字符串

标签 c# .net

在 .NET 中,我需要将小数金额(金钱)转换为纯数字字符串,即: 123,456.78 -> 12345678

我以为

var dotPos = amount.ToString().LastIndexOf('.');
var amountString = amount.ToString().Remove(dotPos);

会解决我的问题,或者至少是部分问题,但它没有像我预期的那样工作。 我试图在不编写大量代码和使用已经为类似目的设计的东西的情况下做到这一点。

最佳答案

你可以这样做:

var amountString = string.Join("", amount.Where(char.IsDigit));

使用 char.IsDigit 方法可以保护您免受其他未知符号的影响,例如 $,并且还可以处理其他货币格式。最重要的是,您无法确切地知道该字符串将始终是什么样子,因此这种方式更安全。

关于c# - 将小数转换为不带逗号或点的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810211/

相关文章:

c# - RS232通讯协议(protocol)三菱FX3G PLC

c# - 使用特定的重载而不进行强制转换?

c# - 不使用数据库或 .xml 文件存储敏感数据的最佳方法

c# - 如何在C#中使用开源库?

c# - 如何使用 Roslyn 在解决方案中查找 MethodDeclarationSyntax 的所有用法

C# WPF System.Drawing.Image 到 System.Windows.Media.Imaging.BitmapSource

c# - 无法使 StyleCop 错误显示为构建错误(而不是警告)

c# - DateTime.ParseExact 格式字符串

c# - 将 Html 呈现或转换为 'formatted' 文本 (.NET)

.net - 通过 WCF 发送 XML 是否存在问题?