我刚刚开始通过新手示例学习TypeScript。
我想创建一个将int
转换为公斤的管道。例如if input = 1234 return 1.2K
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'kiloFormater' })
export class KiloFormaterPipe implements PipeTransform {
transform(num: number): string {
if (num >= 1000000000)
return (num / 1000000000).toString() + 'B';
if (num >= 1000000)
return (num / 1000000).toString() + 'M';
if (num >= 1000)
return (num / 1000).toString() + 'K';
return num.toString();
}
}
修改 该代码返回1K,但我想知道如何获得1.2K。
我可以在C#中通过扩展名做到这一点
public static string FormatNumber(this long num)
{
if (num >= 100000000) {
return (num / 1000000D).ToString("0.#M");
}
if (num >= 1000000) {
return (num / 1000000D).ToString("0.##M");
}
if (num >= 100000) {
return (num / 1000D).ToString("0.#k");
}
if (num >= 10000) {
return (num / 1000D).ToString("0.##k");
}
return num.ToString("#,0");
}
答案 0 :(得分:4)
您可以使用$chartsql = "SELECT count(*) from report where child_id='$childId'" and recall is not null and recall != ''";
将数字转换为任意精度为toFixed(n)
小数位的字符串。
n
答案 1 :(得分:-1)
感谢LazarLjubenović:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'kiloFormater' })
export class KiloFormaterPipe implements PipeTransform {
transform(value: any): string {
if (value >= 1e9) return (value / 1e9).toFixed(1) + 'B'
if (value >= 1e6) return (value / 1e6).toFixed(1) + 'M'
if (value >= 1e3) return (value / 1e3).toFixed(1) + 'K'
return value.toString()
}
}