numToChar.test.ts 799 B

1234567891011121314151617181920212223242526272829
  1. import { describe, expect, it } from "vitest";
  2. function toChineseNumber(num: number) {
  3. let ret = "";
  4. if (num < 10) {
  5. ret = num.toLocaleString("zh-u-nu-hanidec");
  6. } else if (num === 10) {
  7. ret = "十";
  8. } else if (num > 10 && num < 20) {
  9. ret = "十" + (num % 10).toLocaleString("zh-u-nu-hanidec");
  10. } else if (num >= 20 && num < 100) {
  11. const s = num
  12. .toLocaleString("zh-u-nu-hanidec", { useGrouping: false })
  13. .split("");
  14. s.splice(1, 0, "十");
  15. ret = s.join("").replace("〇", "");
  16. } else {
  17. ret = num.toLocaleString("zh-u-nu-hanidec");
  18. }
  19. return ret;
  20. }
  21. describe("toChineseNumber", () => {
  22. it("test number to chinese", () => {
  23. expect(toChineseNumber(12)).toEqual("十二");
  24. // expect(toChineseNumber(13)).toEqual("一十三");
  25. });
  26. });