> static string wordify(decimal v) > { > if (v == 0) return "zero"; > var units = "|one|two|three|four|five|six|seven|eight|nine".Split('|'); > var teens = "|eleven|twelve|thir#|four#|fif#|six#|seven#|eigh#|nine#".Replace("#", "teen").Split('|'); > var tens = "|ten|twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety".Split('|'); > var thou = "|thousand|m#|b#|tr#|quadr#|quint#|sex#|sept#|oct#".Replace("#", "illion").Split('|'); > var g = (v < 0) ? "minus " : ""; > var w = ""; > var p = 0; > v = Math.Abs(v); > while (v > 0) > { > int b = (int)(v % 1000); > if (b > 0) > { > var h = (b / 100); > var t = (b - h * 100) / 10; > var u = (b - h * 100 - t * 10); > var s = ((h > 0) ? units[h] + " hundred" + ((t > 0 | u > 0) ? " and " : "") : "") > + ((t > 0) ? (t == 1 && u > 0) ? teens[u] : tens[t] + ((u > 0) ? "-" : "") : "") > + ((t != 1) ? units[u] : ""); > s = (((v > 1000) && (h == 0) && (p == 0)) ? " and " : (v > 1000) ? ", " : "") + s; > w = s + " " + thou[p] + w; > } > v = v / 1000; > p++; > } > return g + w; > }