回答
根據Angular有關DecimalPipe的文檔:https://angular.io/api/common/DecimalPipe,沒有明確的參數可以添加到管道調用中,以異常更改用於格式化的字符。
如果您不想更改整個項目的區域設置或關聯的默認值,我認爲您最好的辦法是編寫自己的管道處理您的特例。別擔心,管道非常容易編寫。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'numberfr'
})
export class FrenchDecimalPipe implements PipeTransform {
transform(val: number): string {
// Format the output to display any way you want here.
// For instance:
if (val !== undefined && val !== null) {
return val.toLocaleString(/*arguments you need*/);
} else {
return '';
}
}
}
不要忘了將它添加到NgModule中使用它。
toLocaleString失敗的大數字。例如大於9007199254740991.由於超過了這個數值就不安全了。 – Shantanu
@Shantanu,剛剛瞭解到這個JS限制,謝謝!看起來你不用擔心格式化函數,儘管你超越了'MAX_SAFE_INTEGER'。任何改善我的答案的建議? –
以下是我的解決方案,它會幫助某人。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'amountConverter'
})
export class AmountConverterPipe implements PipeTransform {
transform(value: number | string, locale?: string): string {
return new Intl.NumberFormat(locale, {
minimumFractionDigits: 2
}).format(Number(value));
}
}
位數可以通過改變minimumFractionDigits的值來改變。 在HTML中,你可以使用如下
<span class="strong">{{Price | amountConverter:locale}}</span>
數字格式將根據區域的值更改。
詳情請參考https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat。
- 1. 如何爲mdx查詢指定千位和小數分隔符?
- 2. 如何用管道字符分隔符分隔字段
- 3. 如何在C#中指定可選的千位分隔符?
- 4. 如何格式化數字來定義數千個分隔符?
- 5. 如何在列表中拆分管道分隔的字符串?
- 6. R:pixiedust - 如何爲數字添加千位分隔符?
- 7. 如何用逗號將數字記錄爲千位分隔符?
- 8. 如何在python中在字符串數組中添加管道分隔符
- 9. 千位分隔符的數字格式
- 10. 千位分隔符與數據綁定
- 11. 爲字符串類型變量定製千分隔符
- 12. NSNumberFormatter千分隔符
- 13. 在WebStorm中指定字詞分隔符
- 14. 千分隔符php
- 15. 使用管道字符作爲字段分隔符
- 16. 千位分隔符在Python
- 17. 如何用「。」格式化數字。作爲千位分隔符,而「,」作爲小數點分隔符?
- 18. 創建管道分隔字符串
- 19. 如何指定小數點分隔符
- 20. 如何在D3中添加(自定義)千分隔符?
- 21. 如何在Python中爲千位分隔符格式化?
- 22. 如何爲分隔符指定特殊控制字符?
- 23. Ext.form.NumberField中的數千個分隔符
- 24. 如何指定由GWT的NumberFormat使用的千位和小數分隔符
- 25. 如何在Angular 4+中爲RactiveForm指定數據類型?
- 26. 如何將千位分隔符添加到c#中的數字字符串?
- 27. 如何用多個可能的千分隔符解析數字?
- 28. 如何用千位分隔符打印數字?
- 29. 小數千分隔符和小數點
- 30. 生成量身定做千分隔符
可能的[如何設置角度2.0中的數字區域設置]的副本(https://stackoverflow.com/questions/37684360/how-to-set-locale-for-numbers-in-angular-2-0) – Pac0
我不這麼認爲。我認爲OP沒有尋找一種方法來改變默認分隔符,而是給管道指定一個例外的參數。後者是不可能不幸與Angular的DecimalPipe。你可以編寫你自己的管道。 –