gpt4 book ai didi

c# - Java DecimalFormat 的 c# 等价物是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:57:38 24 4
gpt4 key购买 nike

我如何将以下代码转换为 C#

DecimalFormat form 
String pattern = "";
for (int i = 0; i < nPlaces - nDec - 2; i++) {
pattern += "#";
}
pattern += "0.";
for (int i = nPlaces - nDec; i < nPlaces; i++) {
pattern += "0";
}
form = (DecimalFormat) NumberFormat.getInstance();
DecimalFormatSymbols symbols = form.getDecimalFormatSymbols();
symbols.setDecimalSeparator('.');
form.setDecimalFormatSymbols(symbols);
form.setMaximumIntegerDigits(nPlaces - nDec - 1);
form.applyPattern(pattern);

编辑 特殊的问题是我不希望小数分隔符随着区域设置而改变(例如,某些区域设置会使用“,”)。

最佳答案

对于小数点分隔符,您可以将其设置在 NumberFormatInfo 实例中并将其与 ToString 一起使用:

    NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";

//** test **
NumberFormatInfo nfi = new NumberFormatInfo();
decimal d = 125501.0235648m;
nfi.NumberDecimalSeparator = "?";
s = d.ToString(nfi); //--> 125501?0235648

要获得您的 java 版本的结果,请使用带有 Custom Numeric Format StringsToString() 函数版本(即:你所谓的模式):

s = d.ToString("# ### ##0.0000", nfi);// 1245124587.23     --> 1245 124 587?2300
// 24587.235215 --> 24 587?2352

System.Globalization.NumberFormatInfo

关于c# - Java DecimalFormat 的 c# 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com