【问题标题】:Converting Long Money String To Decimal将 Long Money 字符串转换为十进制
【发布时间】:2020-03-25 14:20:23
【问题描述】:

我正在尝试找出一种方法(或找到一个库),支持将长钱字符串转换为小数。我不确定是否有一种实用的方法可以使用所有可能的组合。

基本上,我需要将two hundred and thirteen dollars and fifty-two cents 之类的内容转换为213.52

是否有人知道已经处理此问题的库或已发布的解决方案?我在 Google 上搜索了大约一个小时,并想出了用文字转换的金额。

【问题讨论】:

标签: c# type-conversion


【解决方案1】:

你可以试试 WordToNumberConverter NuGet

https://www.nuget.org/packages/WordToNumberConverter/

但你应该确保输入匹配格式。

正确输入的示例:“二十九和五十五”

同时

错误输入示例:“二十九和五十五”

使用方法:

    WordToNumberConverter.WordToNumberConverter inst = 
        new WordToNumberConverter.WordToNumberConverter();

    var ddd = inst.ConvertWordToNumber("twenty nine thousand and fifty five");

【讨论】:

  • 我觉得有义务说“九千五十五”不是正确的英语。它应该是“九千五十五”——“与”仅用于表示从整数到分数的过渡(例如“九千五十五和十分之四”)
【解决方案2】:

Humanizer 应该能够为您提供更多帮助。 您可以尝试以下链接“https://github.com/Humanizr/Humanizer#number-to-words”。 正如您在示例中看到的那样,它使用起来非常简单

1.ToWords() => "one"
10.ToWords() => "ten"
11.ToWords() => "eleven"
122.ToWords() => "one hundred and twenty-two"
3501.ToWords() => "three thousand five hundred and one"

【讨论】:

  • 我需要走另一条路,不是ToWords()而是WordsToNumbers()有这个功能吗?
猜你喜欢
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多