将小数分隔符从“,”(逗号)转换为“。” (点)例如“7,5”到“7.5”
Posted
技术标签:
【中文标题】将小数分隔符从“,”(逗号)转换为“。” (点)例如“7,5”到“7.5”【英文标题】:Convert decimal separator from ',' (comma) to '.' (dot) e.g. "7,5" to "7.5" 【发布时间】:2014-03-28 09:42:15 【问题描述】:是的。我知道。这些是本地化设置...
但我不会告诉我的客户仅为我的应用更改本地化设置。
那么如何转换这些数字呢?或者如何更改给定范围的数字格式。 (此处需要点,用户可以输入逗号或点,甚至是逗号分隔的数字,例如 1,000,000.00 ...)
编辑: 通过 CStr() 绕过整个问题,并传递字符串。
【问题讨论】:
此链接可能有帮助:msdn.microsoft.com/en-us/library/office/… 这部分解决了我的问题。现在数字实际上是“7.5”但是..“7,5”在vba中将是“7”。 :|如何强制用户输入带点的数字? 您为什么要这样做?你想达到什么目的?请描述一个典型的场景。 【参考方案1】:如果这纯粹是为了显示目的,那么您可以在单元格上使用自定义格式字符串。然后,您的用户可以继续使用他们习惯于输入数字的本地化设置。我认为更改本地化设置不是一个好主意,因为您的客户可能会错误地输入数字。
这是使用自定义格式字符串格式化数字的一般方式。
╔═════════════╦══════════════════════════╦═══════════════╗
║ To display ║ As ║ Use this code ║
╠═════════════╬══════════════════════════╬═══════════════╣
║ 1234.59 ║ 1234.6 ║ ####.# ║
║ ║ ║ ║
║ 8.9 ║ 8.9 ║ #.000 ║
║ ║ ║ ║
║ 0.631 ║ 0.6 ║ 0.# ║
║ ║ ║ ║
║ 12 ║ 12 ║ #.0# ║
║ ║ ║ ║
║ 1234.568 ║ 1234.57 ║ #.0# ║
║ ║ ║ ║
║ 44.398 ║ 44.398 ║ ???.??? ║
║ 102.65 ║ 102.65 ║ ???.??? ║
║ 2.8 ║ 2.8 ║ ???.??? ║
║ ║ (with aligned decimals) ║ ║
║ ║ ║ ║
║ 5.25 ║ 5 1/4 ║ # ???/??? ║
║ 5.3 ║ 5 3/10 ║ # ???/??? ║
║ ║ (with aligned fractions) ║ # ???/??? ║
╚═════════════╩══════════════════════════╩═══════════════╝
这里是微软关于区域格式字符串信息的链接
(2016 年 8 月 11 日更新链接)
https://support.office.com/en-gb/article/Create-or-delete-a-custom-number-format-78f2a361-936b-4c03-8772-09fab54be7f4
【讨论】:
试过这个它根本不起作用。 1234,56 需要按照 OP 的要求显示为 1234.56,但使用 ####.## 将其显示为 1.234,这是不正确的。 @GuidoG 我不知道...我不明白为什么 1234,56 会显示为 1.234。他们甚至不是同一个数字.. 所以答案中的代码不起作用。它仍然显示 .作为小数分隔符和 , 作为千位分隔符。以上是关于将小数分隔符从“,”(逗号)转换为“。” (点)例如“7,5”到“7.5”的主要内容,如果未能解决你的问题,请参考以下文章