数值格式化字符“N”在Windows和Linux/Mac OS里结果不同
数值格式化字符“N”在Windows里保留2位小数,但是在Linux/Mac OS里保留3位小数
凭以往的经验,当我们需要把一个数值格式化为带千分符和2位小数的字符串时,N是个非常方便的格式化字符。
看一段非常简单的代码:
1 | using System; |
毫无疑问,我希望这段代码的输出为1,234,567.57,在 Windows 系统里结果的确如此,但是在 Linux/Mac OS 里,结果却是1,234,567.568,保留了3位小数,我真 (╯‵□′)╯︵┻━┻
我猜这是 Linux/Mac OS 里的标准或者约定?如果真是这样的话,我就比较无奈了,为了让我们的项目无论在什么操作系统下都有一致的输出,要么不使用N,要么在 Windows 和 Linux/Mac OS 下使用不同的格式化字符,比如:
1 | // using System.Runtime.InteropServices; |