C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号

2023-12-28

我试图获取用户输入,解析它,然后使用 String.Format() 显示,用逗号格式化数千个。

So, if user provides
1000  I will display 1,000
1000.00 => 1,000.00
1000.0  => 1,000.0
1,000.5 => 1,000.5

基本上我想保留提供的所有小数(包括尾随零),并且只添加数千个格式。 我试过:

String.Format("{0:#,0.######}" , Decimal.Parse(input));
String.Format("{0:#,0.######}" , Double.Parse(input);

double.Parse(input)是不行的,因为double不记录小数位数。

decimal.Parse(input).ToString()将表明decimal确实记录了这一点。很遗憾,decimal.Parse(input).ToString()使用此精度并且不使用千位分隔符,并且decimal.Parse(input).ToString("N")忽略精度但使用千位分隔符。

不过,手动从小数中提取精度是可行的,这允许您构建正确的格式字符串:

static string InsertThousandsSeparator(string input) {
    var dec = decimal.Parse(input);
    var bits = decimal.GetBits(dec);
    var prec = bits[3] >> 16 & 255;
    return dec.ToString("N" + prec);
}

这是基于的布局decimal如 MSDN 上所述 https://msdn.microsoft.com/en-us/library/system.decimal.getbits(v=vs.110).aspx:

位 16 到 23 必须包含 0 到 28 之间的指数,表示整数除以 10 的幂。

查看它在 .NET Fiddle 上的运行情况。 https://dotnetfiddle.net/btmjm4(由@Alisson 提供)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号 的相关文章

  • 将 System.Drawing.Image 转换为 System.Windows.Media.ImageSource 但没有结果

    我想在我的 WPF 应用程序中将 Image 转换为 ImageSource 我使用正常工作的 Code128 库 已在 WinForms 应用程序中检查 下面的函数返回具有适当大小的 ImageSource 但没有任何内容可见 priva
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 如何在联系我们页面中使用用户电子邮件发送电子邮件?

    我正在创建一个联系我们页面 并且我想从该页面接收邮件 因为它的邮件来自用户邮件 我写了这段代码 var client new SmtpClient smtp gmail com 587 Credentials new NetworkCred
  • 类型转换 sockaddr 结构

    我正在尝试学习网络编程 并在这个过程中学习C 我对结构感到困惑sockaddr这是一个通用地址 并且sockaddr in 我的书里是这么说的 因此 我们可以填写 sockaddr in 的字段 然后强制转换 a 指向 它指向 指向 soc
  • 实体框架 - 循环更新属性

    我正在尝试找到一种方法来循环 EF 对象的属性并更新这些属性的值 更具体地说 我有 50 个字段 其中最多填充 50 个下拉列表 所有 50 个可能都需要填充 也可能不需要填充 为了解决这个问题 我有一个中继器 最多可以创建 50 个 DD
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • 如何将 pem 公钥转换为 openssl RSA* 结构

    假设我必须像这样公开 pem 密钥 BEGIN PUBLIC KEY MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnk O3Kwc4qsEnSZp TR fQi
  • 如何使用Task.WhenAny并实现重试

    我有一个创建多个基于 I O 的任务的解决方案 我正在使用Task WhenAny 来管理这些任务 但通常许多任务会由于网络问题或请求限制等原因而失败 我似乎找不到一个解决方案 使我能够在使用时成功重试失败的任务Task WhenAny 方
  • 如何以编程方式确定 C 中 int 数据的最大和最小限制?

    我正在尝试 K R 的练习 2 1 练习内容如下 编写一个程序来确定范围char short int and long变量 两者signed and unsigned 通过从标准标题打印适当的值并通过直接计算 如果计算它们会更困难 确定各种
  • 尝试将元素推入向量

    在头文件 我没有编写 中 已经定义了一个结构体 如下所示 struct MemoryMessage public boost counted base public FastAlloc explicit MemoryMessage Memo
  • 使用 C 创建立体声正弦波

    我正在尝试用 C 创建立体声正弦 WAV 并且可能有不同的 可能是空白的 左声道和右声道 使用此函数为每个通道生成一个音调 int16 t create tone float frequency float amplitude float
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • Parallel.For 和 Break() 误解?

    我正在研究 For 循环中的并行性中断 看完之后this http tipsandtricks runicsoft com CSharp ParallelClass html and this http reedcopsey com 201
  • 在 C# 中加密并在 Flex 中解密

    我需要解密 Flex 中的一些数据 这些数据是用 C 加密并写入文件的 为了简单起见 我选择使用 as3crypto As3 库和 Bruce Schneier C 库 AS3 as3加密链接 http code google com p
  • 如何带参数调用外部程序?

    我想在我的代码中调用一个 Windows 程序 并使用代码本身确定的参数 我不想调用外部函数或方法 而是调用 WinXP 环境中的实际 exe 或批处理 脚本文件 C 或 C 将是首选语言 但如果使用任何其他语言更容易完成此操作 请告诉我
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 在同一条线上铸造两次

    我在项目中看到了这段代码 b的类型是void void b int a int unsigned long b 这条线毫无意义吗 我的意思是 这与a int b在所有情况下 这可能会避免 64 位 Unix 系统上的编译器警告unsigne
  • 如何从标准输入读取一行,阻塞直到找到换行符?

    我试图从命令行的标准输入一次读取任意长度的一行 我不确定是否能够包含 GNU readline 并且更喜欢使用库函数 我读过的文档表明getline应该可以工作 但在我的实验中它不会阻塞 我的示例程序 include
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio

随机推荐

  • 在 Android 中捕获完整的日志

    我想知道如何从 Android 设备获取完整日志 从我的应用程序初始化到任何崩溃或直到强制关闭我的应用程序 我在这里发帖的原因是我的应用程序在某个时候崩溃了 但是当我使用日志时DDMS Logcat我的崩溃详细信息已被新日志覆盖 我如何获取
  • 从堆栈内存中删除结构

    我有一个链表结构 我想将一个节点 另一个结构 指针传递给一个函数 该节点是链表的一部分 但我将节点单独传递给删除器函数 我希望它将下一个节点数据复制到自身中 覆盖其数据 并删除下一个节点 从而删除自身 这部分正在工作 我让它检查传递的节点是
  • @Html.BeginForm 在页面上显示“System.Web.Mvc.Html.MvcForm”

    我有一个剃刀视图 我在 if 语句内部添加了一个删除按钮 当视图在浏览器中呈现时 它会显示 系统 Web Mvc Html MvcForm 删除按钮旁边 我该如何摆脱它 这是代码 div if update User UserName Eq
  • processing.js 如何检测浏览器的大小?

    如前所述 processing js 如何响应浏览器的大小 响应式设计 我尝试过 screen width 和 screen height 但效果不佳 看来只能检测电脑屏幕尺寸的大小 更重要的是 我想在拖动并更改浏览器大小时与窗口大小保持同
  • C++数学表达式的错误结果[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我必须计算
  • 具有 MultiIndex 的 DataFrame 到 dict

    我有一个带有多重索引的数据框 我想知道我是否以正确的方式创建了数据框 见下文 01 01 02 01 03 01 04 01 bar total1 40 52 18 11 total2 36 85 5 92 baz total1 23 39
  • 如何在java中读取.pem文件格式的EC私钥

    如何使用JAVA读取 pem文件中的EC私钥 在阅读时我遇到以下异常 引起原因 java security InvalidKeyException IOException 版本不匹配 支持 00 解析 01 其实我的 Pem 文件包含以下结
  • 在 SQL 中使用 COUNT 函数

    首先也是最重要的 这是作业的一部分 我正在尝试使用 COUNT 函数作为与 Northwind 数据库相关的查询的一部分 查询应返回 CustomerID CompanyName 和为每个客户下的订单数量 当然 前两部分很简单 但我无法让
  • C++ 外部函数,以函数指针作为参数,在具有成员函数的类内部使用

    对 C 相当陌生 假设我有一堂课 class A private double m x m y public A double x double y m x x m y extF m x y intF double intF double
  • Json 文件到 pyspark 数据帧

    我正在尝试在 Spark pyspark 环境中使用 JSON 文件 问题 无法将 Pyspark Dataframe 中的 JSON 转换为预期格式 第一个输入数据集 https health data ny gov api views
  • 在 SELECT 中使用构造函数表达式的 JPQL/Hibernate 限制

    根据我对 JPA 2 0 规范的阅读 以下内容应该是有效的 select e employeeId new com foo Custom e employeeName e employeeCity from Employee e 然而 Hi
  • 带有 JSON 字符串的 IHttpActionResult

    我有一个方法最初返回一个HttpResponseMessage我想将其转换为返回IHttpActionResult 我的问题是当前的代码正在使用 JSON Net 来序列化复杂的通用树结构 它可以很好地使用自定义JsonConverter我
  • 使用 phpMyAdmin 将 CSV 文件导入 MySQL

    我搜索并阅读了许多关于使用以下命令将 CSV 文件导入 MySQL 数据库的帖子 文章phpMyAdmin 2 8 0 1他们让它听起来如此简单 但实际上并非如此 我所做的一切都没有正确 我有一个包含 2 列的表 均定义为NOT NULL
  • 为什么我不能直接将ArrayList添加到Jlist中?

    我正在尝试将 ArrayList 添加到 Jlist 但我给出的理解的唯一方法是编写如下代码 ArrayList
  • 错误消息“程序不包含适合入口点的静态‘Main’方法”

    我有一个 ASP NET CORE 应用程序 其中包含一些项目和以下 Dockerfile FROM microsoft dotnet 2 2 aspnetcore runtime AS base WORKDIR app EXPOSE 80
  • Polymer HTML 导入已弃用

    所以我刚刚开始使用聚合物并收到以下消息 Deprecation Styling master document from stylesheets defined in HTML Imports is deprecated and is pl
  • (MongoDB) 在同一管道中结合并集和交集

    我在最新版本的 mongoDB 和 pymongo 中运行以下聚合管道 project union setUnion query a query b unwind union group id union ID date a addToSe
  • 如何在 Google 表格中创建“反向数据透视表”?

    我正在尝试生成一个 反向枢轴 功能 我一直在努力寻找这样的功能 但找不到已经存在的功能 我有一个汇总表 其中最多有 20 列和数百行 但是我想将其转换为平面列表 以便我可以导入到数据库 甚至使用平面数据来创建更多数据透视表 所以 我有这种格
  • 单独的环境配置elastic beanstalk

    我正在弹性豆茎中创建一个具有网络层和工作层的 Rails 应用程序 使用 ebextensions 内的 ELB 设置启动 Web 环境是正常的 但我无法启动工作环境 因为它没有 ELB 有没有办法为每个环境分离 ebextensions
  • C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号

    我试图获取用户输入 解析它 然后使用 String Format 显示 用逗号格式化数千个 So if user provides 1000 I will display 1 000 1000 00 gt 1 000 00 1000 0 g