Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 带角管的基洛格式化程序_Angular_Typescript - Fatal编程技术网

Angular 带角管的基洛格式化程序

Angular 带角管的基洛格式化程序,angular,typescript,Angular,Typescript,我刚开始用新手的例子学习打字脚本 我想创建一个管道,用于将int转换为kilo。例如如果输入=1234返回1.2K import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'kiloFormater' }) export class KiloFormaterPipe implements PipeTransform { transform(num: number): string { if (

我刚开始用新手的例子学习打字脚本

我想创建一个管道,用于将
int
转换为kilo。例如
如果输入=1234返回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");
}
您可以使用
toFixed(n)
将数字转换为任意精度为
n
小数位的字符串

函数变换(值){
如果(值>=1e6)返回(值/1e6).toFixed(1)+'M'
如果(值>=1e3)返回(值/1e3).toFixed(1)+“K”
返回值.toString()
}
console.log(转换(1234))

console.log(transform(1234567))
感谢Lazar Ljubenović:

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()
    }
}

所以问题是什么?@CamiloTerevinto我的代码返回1K。我想看1.2K